(INAKTUELL) Distribuera Kubernetes-kluster för Windows-containrar

Varning

Azure Container Service (ACS) är inaktuell. Inga nya funktioner läggs till i ACS. Alla API:er, portalen, CLI-kommandon och dokumentationen är markerade som inaktuella.

2017 införde vi Azure Kubernetes Service (AKS) för att förenkla hanteringen, distributionen och åtgärderna för Kubernetes. Om du använder Kubernetes-initieraren bör du migrera till AKS senast den 31 januari 2020. Kom igång genom att läsa om att migrera till Azure Kubernetes Service.

Mer information finns i utfasningsmeddelandet för Azure Container Service på Azure.com.

Azure CLI används för att skapa och hantera Azure-resurser från kommandoraden eller i skript. Den här guiden beskriver hur Azure CLI används för att distribuera ett Kubernetes-kluster i Azure Container Service. När klustret distribueras kan du ansluta till det med kommandoradsverktyget för Kubernetes kubectl och distribuera din första Windows-container.

Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.

Använda Azure Cloud Shell

Azure är värd för Azure Cloud Shell, en interaktiv gränssnittsmiljö som du kan använda via webbläsaren. Du kan använda antingen Bash eller PowerShell med Cloud Shell för att arbeta med Azure-tjänster. Du kan använda förinstallerade Cloud Shell-kommandon för att köra koden i den här artikeln utan att behöva installera något i din lokala miljö.

Så här startar du Azure Cloud Shell:

Alternativ Exempel/länk
Välj Prova i det övre högra hörnet av ett kodblock. Om du väljer Prova kopieras koden inte automatiskt till Cloud Shell. Exempel på Prova för Azure Cloud Shell
Gå till https://shell.azure.com eller Välj knappen Starta Cloud Shell för att öppna Cloud Shell i webbläsaren. Starta Cloud Shell i ett nytt fönster
Välj knappen Cloud Shell på menyn längst upp till höger i Azure-portalen. Cloud Shell-knappen i Azure Portal

Så här kör du koden i den här artikeln i Azure Cloud Shell:

  1. Starta Cloud Shell.

  2. Kopiera koden genom att klicka på knappen Kopiera på ett kodblock.

  3. Klistra in koden i Cloud Shell-sessionen genom att välja Ctrl+Skift+V på Windows och Linux eller genom att välja Cmd+Skift+V på macOS.

  4. Välj Retur för att köra koden.

Om du väljer att installera och använda CLI lokalt måste du köra Azure CLI version 2.0.4 eller senare. Kör az --version för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa informationen i Installera Azure CLI.

Anteckning

Stöd för Windows-behållare med Kubernetes i Azure Container Service är tillgängligt som en förhandsversion.

Skapa en resursgrupp

Skapa en resursgrupp med kommandot az group create. En Azure-resursgrupp är en logisk grupp där Azure-resurser distribueras och hanteras.

I följande exempel skapas en resursgrupp med namnet myResourceGroup på platsen eastus.

az group create --name myResourceGroup --location eastus

Skapa Kubernetes-kluster

Skapa ett Kubernetes-kluster i Azure Container Service med kommandot az acs create.

I följande exempel skapas ett kluster med namnet myK8sCluster med en Linux master-nod och två noder för Windows-agenten. Det här exemplet skapar SSH-nycklar som krävs för att ansluta till Linux-mastern. Det här exemplet använder azureuser som administrativt användarnamn och myPassword12 som lösenord. Uppdatera dessa värden till något som är lämpligt för din miljö.

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

Om några minuter har kommandot slutförts och visar information om din distribution.

Installera kubectl

För att ansluta till Kubernetes-klustret från klientdatorn använder du kubectl, Kubernetes kommandoradsklient.

Om du använder Azure CloudShell är kubectl redan installerad. Om du vill installera det lokalt, kan du använda kommandot az acs kubernetes install-cli.

I följande exempel för Azure CLI installeras kubectl i systemet. I Windows kör du kommandot som administratör.

az acs kubernetes install-cli

Ansluta med kubectl

För att konfigurera kubectl för att ansluta till Kubernetes klustret kör du kommandot az acs kubernetes get-credentials. I följande exempel hämtas klusterkonfigurationen för Kubernetes-klustret.

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

För att verifiera anslutningen till ditt kluster från din dator, kör:

kubectl get nodes

kubectl visar master- och agentnoderna.

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

Distribuera en Windows-IIS-container

Du kan köra en Docker-container i en Kubernetes-pod, som innehåller en eller flera containrar.

Det här grundläggande exemplet använder en JSON-fil för att ange en container för Microsoft Internet Information Server (IIS) och skapar sedan poden med hjälp av kubctl apply.

Skapa en lokal fil med namnet iis.json och kopiera följande text. Filen uppmanar Kubernetes att köra IIS på Windows Server 2016 Nano Server med en offentlig containeravbildning från Docker Hub. Containern använder port 80, men är ursprungligen endast tillgänglig i nätverket för klustret.

{
 "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"
    }
  }
}

Om du vill starta en pod, skriver du:

kubectl apply -f iis.json

För att spåra distributionen, skriver du:

kubectl get pods

Medan poden distribueras är statusen ContainerCreating. Det kan ta några minuter för containern att ange tillståndet Running.

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

Visa välkomstsidan för IIS

Om du vill exponera din pod för alla med en offentlig IP-adress skriver du följande kommando:

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

Med detta kommando skapar Kubernetes en tjänst och en Azure Load Balancer-regel med en offentlig IP-adress för tjänsten.

Kör följande kommando för att se status för tjänsten.

kubectl get svc

IP-adressen visas först som pending. Efter några minuter har iis-podens externa IP-adress ställts in:

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

Du kan använda en webbläsare som du väljer för att se IIS-välkomstsidan på den externa IP-adressen:

Bild som visar hur du går till IIS

Ta bort klustret

När klustret inte längre behövs kan du använda kommandot az group delete för att ta bort resursgruppen, containertjänsten och alla relaterade resurser.

az group delete --name myResourceGroup

Nästa steg

I den här snabbstartsguiden du har distribuerat ett Kubernetes-kluster med kubectl och distribuerat en pod med en IIS-container. Om du vill veta mer om Azure Container Service kan fortsätta till självstudiekursen om Kubernetes.