Distribuire cluster Kubernetes per contenitori WindowsDeploy Kubernetes cluster for Windows containers

Avviso

Si sta visualizzando la documentazione per la versione precedente del servizio contenitore di Azure.You are viewing documentation for the old version of the Azure Container Service. Il servizio contenitore di Azure è in fase di aggiornamento con l'aggiunta di nuove opzioni di distribuzione, funzionalità di gestione migliorate e vantaggi economici in Kubernetes in Azure.Azure Container Service (AKS) is being updated to add new deployment options, enhanced management capabilities, and cost benefit to Kubernetes on Azure. Per iniziare a usare tali funzionalità in anteprima, vedere AKS documentation (Documentazione del servizio contenitore di Azure).Visit the AKS documentation to start working with these preview features.

L'interfaccia della riga di comando di Azure viene usata per creare e gestire le risorse di Azure dalla riga di comando o negli script.The Azure CLI is used to create and manage Azure resources from the command line or in scripts. Questa guida illustra in modo dettagliato come usare l'interfaccia della riga di comando di Azure per distribuire un cluster Kubernetes nel servizio contenitore di Azure.This guide details using the Azure CLI to deploy a Kubernetes cluster in Azure Container Service. Dopo aver distribuito il cluster, è possibile connettersi a esso con lo strumento da riga di comando kubectl di Kubernetes e distribuire il primo contenitore Windows.Once the cluster is deployed, you connect to it with the Kubernetes kubectl command-line tool, and you deploy your first Windows container.

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.If you don't have an Azure subscription, create a free account before you begin.

Avviare Azure Cloud ShellLaunch Azure Cloud Shell

Azure Cloud Shell è una shell Bash gratuita che può essere eseguita direttamente nel portale di Azure.The Azure Cloud Shell is a free Bash shell that you can run directly within the Azure portal. Include l'interfaccia della riga di comando di Azure preinstallata e configurata per l'uso con l'account.It has the Azure CLI preinstalled and configured to use with your account. Fare clic sul pulsante Cloud Shell nel menu nel riquadro in alto a destra nel portale di Azure.Click the Cloud Shell button on the menu in the upper-right of the Azure portal.

Cloud ShellCloud Shell

Il pulsante avvia una shell interattiva che è possibile usare per eseguire i passaggi di questo argomento:The button launches an interactive shell that you can use to run the steps in this topic:

Screenshot che mostra la finestra di Cloud Shell nel portaleScreenshot showing the Cloud Shell window in the portal

Se si sceglie di installare e usare l'interfaccia della riga di comando in locale, per questa guida introduttiva è necessario eseguire la versione 2.0.4 o successiva dell'interfaccia della riga di comando di Azure.If you choose to install and use the CLI locally, this quickstart requires that you are running the Azure CLI version 2.0.4 or later. Eseguire az --version per trovare la versione.Run az --version to find the version. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure 2.0.If you need to install or upgrade, see Install Azure CLI 2.0.

Nota

Il supporto per i contenitori Windows in Kubernetes nel servizio contenitore di Azure è disponibile in versione di anteprima.Support for Windows containers on Kubernetes in Azure Container Service is in preview.

Creare un gruppo di risorseCreate a resource group

Creare un gruppo di risorse con il comando az group create.Create a resource group with the az group create command. Un gruppo di risorse di Azure è un gruppo logico in cui le risorse di Azure vengono distribuite e gestite.An Azure resource group is a logical group in which Azure resources are deployed and managed.

L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella località stati uniti orientali.The following example creates a resource group named myResourceGroup in the eastus location.

az group create --name myResourceGroup --location eastus

Creare un cluster KubernetesCreate Kubernetes cluster

Creare un cluster Kubernetes nel servizio contenitore di Azure con il comando az acs create.Create a Kubernetes cluster in Azure Container Service with the az acs create command.

L'esempio seguente crea un cluster denominato myK8sCluster con un nodo master Linux e due nodi agente Windows.The following example creates a cluster named myK8sCluster with one Linux master node and two Windows agent nodes. Questo esempio crea le chiavi SSH necessarie per la connessione al nodo master Linux.This example creates SSH keys needed to connect to the Linux master. L'esempio usa azureuser come nome utente amministrativo e myPassword12 come password nei nodi Windows.This example uses azureuser for an administrative user name and myPassword12 as the password on the Windows nodes. Aggiornare i valori in modo che siano appropriati all'ambiente.Update these values to something appropriate to your environment.

az acs create --orchestrator-type=kubernetes \
    --resource-group myResourceGroup \
    --name=myK8sCluster \
    --agent-count=2 \
    --generate-ssh-keys \
    --windows --admin-username azureuser \
    --admin-password myPassword12

Dopo alcuni minuti, il comando viene completato e mostra le informazioni sulla distribuzione.After several minutes, the command completes, and shows you information about your deployment.

Installare kubectlInstall kubectl

Per connettersi al cluster Kubernetes dal computer client, usare kubectl, il client da riga di comando di Kubernetes.To connect to the Kubernetes cluster from your client computer, use kubectl, the Kubernetes command-line client.

Se si usa Azure CloudShell, kubectl è già installato.If you're using Azure CloudShell, kubectl is already installed. Se lo si vuole installare in locale, è possibile usare il comando az acs kubernetes install-cli.If you want to install it locally, you can use the az acs kubernetes install-cli command.

L'interfaccia della riga di comando di Azure seguente installa kubectl nel sistema.The following Azure CLI example installs kubectl to your system. In Windows eseguire questo comando come amministratore.On Windows, run this command as an administrator.

az acs kubernetes install-cli

Connettersi con kubectlConnect with kubectl

Per configurare kubectl per connettersi al cluster Kubernetes, eseguire il comando az acs kubernetes get-credentials.To configure kubectl to connect to your Kubernetes cluster, run the az acs kubernetes get-credentials command. L'esempio seguente scarica la configurazione del cluster per il cluster Kubernetes.The following example downloads the cluster configuration for your Kubernetes cluster.

az acs kubernetes get-credentials --resource-group=myResourceGroup --name=myK8sCluster

Per verificare la connessione al cluster dal computer, provare a eseguire:To verify the connection to your cluster from your machine, try running:

kubectl get nodes

kubectl elenca i nodi master e agente.kubectl lists the master and agent nodes.

NAME                    STATUS                     AGE       VERSION
k8s-agent-98dc3136-0    Ready                      5m        v1.5.3
k8s-agent-98dc3136-1    Ready                      5m        v1.5.3
k8s-master-98dc3136-0   Ready,SchedulingDisabled   5m        v1.5.3

Distribuire un contenitore IIS WindowsDeploy a Windows IIS container

È possibile eseguire un contenitore Docker all'interno di un pod Kubernetes, che contiene uno o più contenitori.You can run a Docker container inside a Kubernetes pod, which contains one or more containers.

Questo esempio di base usa un file JSON per specificare un contenitore Microsoft Internet Information Server (IIS) e quindi crea il pod usando il comando kubctl apply.This basic example uses a JSON file to specify a Microsoft Internet Information Server (IIS) container, and then creates the pod using the kubctl apply command.

Creare un file locale denominato iis.json e copiare il testo seguente.Create a local file named iis.json and copy the following text. Questo file indica a Kubernetes di eseguire IIS su Windows Server 2016 Nano Server usando un'immagine di contenitore pubblica dall'hub Docker.This file tells Kubernetes to run IIS on Windows Server 2016 Nano Server, using a public container image from Docker Hub. Il contenitore usa la porta 80, ma inizialmente è accessibile solo all'interno della rete di cluster.The container uses port 80, but initially is only accessible within the cluster network.

{
 "apiVersion": "v1",
 "kind": "Pod",
 "metadata": {
   "name": "iis",
   "labels": {
     "name": "iis"
   }
 },
 "spec": {
   "containers": [
     {
       "name": "iis",
       "image": "microsoft/iis:nanoserver",
       "ports": [
         {
         "containerPort": 80
         }
       ]
     }
   ],
   "nodeSelector": {
    "beta.kubernetes.io/os": "windows"
    }
  }
}

Per avviare il pod, digitare:To start the pod, type:

kubectl apply -f iis.json

Per tenere traccia della distribuzione, digitare:To track the deployment, type:

kubectl get pods

Durante la distribuzione del pod, lo stato è ContainerCreating.While the pod is deploying, the status is ContainerCreating. Per il passaggio del contenitore allo stato Running, possono essere necessari alcuni minuti.It can take a few minutes for the container to enter the Running state.

NAME     READY        STATUS        RESTARTS    AGE
iis      1/1          Running       0           32s

Visualizzare la pagina iniziale di IISView the IIS welcome page

Per esporre il pod con un indirizzo IP pubblico, digitare il comando seguente:To expose the pod to the world with a public IP address, type the following command:

kubectl expose pods iis --port=80 --type=LoadBalancer

Con questo comando, Kubernetes crea un servizio e una regola di Azure Load Balancer con un indirizzo IP pubblico per il servizio.With this command, Kubernetes creates a service and an Azure load balancer rule with a public IP address for the service.

Eseguire questo comando per visualizzare lo stato del servizio.Run the following command to see the status of the service.

kubectl get svc

L'indirizzo IP viene inizialmente visualizzato come pending.Initially the IP address appears as pending. Dopo alcuni minuti, viene impostato l'indirizzo IP esterno del pod iis:After a few minutes, the external IP address of the iis pod is set:

NAME         CLUSTER-IP     EXTERNAL-IP     PORT(S)        AGE       
kubernetes   10.0.0.1       <none>          443/TCP        21h       
iis          10.0.111.25    13.64.158.233   80/TCP         22m

È possibile usare il Web browser che si preferisce per vedere la pagina iniziale di IIS predefinita all'indirizzo IP esterno:You can use a web browser of your choice to see the default IIS welcome page at the external IP address:

Immagine del passaggio a IIS

Eliminare il clusterDelete cluster

Quando il cluster non è più necessario, è possibile usare il comando az group delete per rimuovere il gruppo di risorse, il servizio contenitore e tutte le risorse correlate.When the cluster is no longer needed, you can use the az group delete command to remove the resource group, container service, and all related resources.

az group delete --name myResourceGroup

Passaggi successiviNext steps

In questa guida introduttiva è stato distribuito un cluster Kubernetes, è stata eseguita la connessione con kubectl ed è stato distribuito un pod con un contenitore IIS.In this quick start, you deployed a Kubernetes cluster, connected with kubectl, and deployed a pod with an IIS container. Per altre informazioni sul servizio contenitore di Azure, continuare con l'esercitazione su Kubernetes.To learn more about Azure Container Service, continue to the Kubernetes tutorial.