(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. | |
Gå till https://shell.azure.com eller Välj knappen Starta Cloud Shell för att öppna Cloud Shell i webbläsaren. | |
Välj knappen Cloud Shell på menyn längst upp till höger i Azure-portalen. |
Så här kör du koden i den här artikeln i Azure Cloud Shell:
Starta Cloud Shell.
Kopiera koden genom att klicka på knappen Kopiera på ett kodblock.
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.
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:
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.