Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Kubernetes Service (AKS) är en hanterad Kubernetes-tjänst som gör att du snabbt kan distribuera och hantera kluster. I den här artikeln använder du Azure CLI för att distribuera ett AKS-kluster som kör Windows Server-containrar. Du distribuerar också ett ASP.NET exempelprogram i en Windows Server-container till klustret.
Anmärkning
För att komma igång med att snabbt etablera ett AKS-kluster innehåller den här artikeln steg för att distribuera ett kluster med standardinställningar endast i utvärderingssyfte. Innan du distribuerar ett produktionsklart kluster rekommenderar vi att du bekantar dig med vår referensarkitektur för baslinje för att överväga hur det överensstämmer med dina affärskrav.
Innan du börjar
Den här snabbstarten förutsätter grundläggande kunskaper om Kubernetes-begrepp. Mer information finns i Viktiga koncept för Azure Kubernetes Service (AKS).
- Om du inte har något Azure-konto skapar du ett kostnadsfritt konto innan du börjar.
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Kom igång med Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Autentisera till Azure med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda och hantera tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
- Den här artikeln kräver version 2.0.64 eller senare av Azure CLI. Om du använder Azure Cloud Shell är den senaste versionen redan installerad där.
- Kontrollera att den identitet som du använder för att skapa klustret har lämpliga minimibehörigheter. Mer information om åtkomst och identitet för AKS finns i Åtkomst- och identitetsalternativ för Azure Kubernetes Service (AKS).
- Om du har flera Azure-prenumerationer väljer du lämpligt prenumerations-ID där resurserna ska faktureras med kommandot
az account set. Mer information finns i Hantera Azure-prenumerationer – Azure CLI. - Om du använder
--os-sku Windows2025måste du installeraaks-previewtillägget och registrera förhandsgranskningsflaggan. Den lägsta versionen är 18.0.0b40.
aks-preview Installera tillägget
Viktigt!
AKS-förhandsversionsfunktioner är tillgängliga via självbetjäning och frivillig registrering. Förhandsversioner tillhandahålls "i befintligt skick" och "i mån av tillgång," och de är undantagna från servicenivåavtal och begränsad garanti. AKS-förhandsversioner stöds delvis av kundsupport efter bästa förmåga. Därför är dessa funktioner inte avsedda för produktionsanvändning. Mer information finns i följande supportartiklar:
-
aks-previewInstallera Azure CLI-tillägget med kommandotaz extension add.
az extension add --name aks-preview
- Uppdatera till den senaste versionen av tillägget med kommandot
az extension update. Windows Server 2025 kräver minst 18.0.0b40.
az extension update --name aks-preview
Registrera funktionsflaggan AksWindows2025Preview
- Registrera funktionsflaggan
AksWindows2025Previewmed kommandot [az feature register][az-feature-register].
az feature register --name AksWindows2025Preview --namespace Microsoft.ContainerService
- Kontrollera registreringsstatusen med kommandot [
az feature show][az-feature-show]. Det tar några minuter för statusen att visa Registrerad.
az feature show --name AksWindows2025Preview --namespace Microsoft.ContainerService
När statusen återspeglar Registrerad uppdaterar du registreringen av resursprovidern Microsoft.ContainerService med kommandot [
az provider register][az-provider-register].az provider register --namespace Microsoft.ContainerService
Skapa en resursgrupp
En Azure-resursgrupp är en logisk grupp där Azure-resurser distribueras och hanteras. När du skapar en resursgrupp uppmanas du att ange en plats. Den här platsen är platsen där resursgruppsmetadata lagras och där dina resurser körs i Azure om du inte anger en annan region när du skapar resurser.
Skapa en resursgrupp med kommandot
az group create. I följande exempel skapas en resursgrupp med namnet myResourceGroup på platsen WestUS2 .export RANDOM_SUFFIX=$(openssl rand -hex 3) export REGION="canadacentral" export MY_RESOURCE_GROUP_NAME="myAKSResourceGroup$RANDOM_SUFFIX" az group create --name $MY_RESOURCE_GROUP_NAME --location $REGIONResultat:
{ "id": "/subscriptions/xxxxx-xxxxx-xxxxx-xxxxx/resourceGroups/myResourceGroupxxxxx", "location": "WestUS2", "managedBy": null, "name": "myResourceGroupxxxxx", "properties": { "provisioningState": "Succeeded" }, "tags": null, "type": "Microsoft.Resources/resourceGroups" }
Skapa ett AKS-kluster
I det här avsnittet skapar vi ett AKS-kluster med följande konfiguration:
- Klustret har konfigurerats med två noder för att säkerställa att det fungerar tillförlitligt. En nod är en virtuell Azure-dator (VM) som kör Kubernetes-nodkomponenterna och containerkörningen.
- Parametrarna
--windows-admin-passwordoch--windows-admin-usernameanger administratörsautentiseringsuppgifterna för alla Windows Server-noder i klustret och måste uppfylla lösenordskraven för Windows Server. - Nodpoolen använder
VirtualMachineScaleSets.
Använd följande steg för att skapa AKS-klustret med Azure CLI:
Skapa ett användarnamn som ska användas som administratörsautentiseringsuppgifter för Windows Server-noderna i klustret.
export WINDOWS_USERNAME="winadmin"Skapa ett lösenord för administratörsanvändarnamnet som du skapade i föregående steg. Lösenordet måste innehålla minst 14 tecken och uppfylla kraven på lösenordskomplexitet för Windows Server.
export WINDOWS_PASSWORD=$(echo "P@ssw0rd$(openssl rand -base64 10 | tr -dc 'A-Za-z0-9!@#$%^&*()' | cut -c1-6)")Skapa klustret med kommandot
az aks createoch ange parametrarna--windows-admin-usernameoch--windows-admin-password. Följande exempelkommando skapar ett kluster med hjälp av värdena frånWINDOWS_USERNAMEochWINDOWS_PASSWORDdu anger i föregående kommandon. Ett slumpmässigt suffix läggs till i klusternamnet för unikhet.export MY_AKS_CLUSTER="myAKSCluster$RANDOM_SUFFIX" az aks create \ --resource-group $MY_RESOURCE_GROUP_NAME \ --name $MY_AKS_CLUSTER \ --node-count 2 \ --enable-addons monitoring \ --generate-ssh-keys \ --windows-admin-username $WINDOWS_USERNAME \ --windows-admin-password $WINDOWS_PASSWORD \ --vm-set-type VirtualMachineScaleSets \ --network-plugin azureEfter några minuter slutförs kommandot och returnerar JSON-formaterad information om klustret. Ibland kan det ta längre tid än några minuter att etablera klustret. Tillåt upp till 10 minuter för konfiguration.
Om du får ett lösenordsverifieringsfel och lösenordet som du anger uppfyller kraven på längd och komplexitet kan du prova att skapa resursgruppen i en annan region. Försök sedan att skapa klustret med den nya resursgruppen.
Om du inte anger ett administratörsanvändarnamn och lösenord när du skapar nodpoolen anges användarnamnet till azureuser och lösenordet är inställt på ett slumpmässigt värde. Mer information finns i Vanliga frågor och svar om Windows Server
Du kan inte ändra administratörens användarnamn, men du kan ändra administratörslösenordet som AKS-klustret använder för Windows Server-noder med hjälp av
az aks update. Mer information finns i Vanliga frågor och svar om Windows Server.Om du vill köra ett AKS-kluster som stöder nodpooler för Windows Server-containrar måste klustret använda en nätverksprincip som använder azure CNI-nätverksinsticksprogram (avancerat). Parametern
--network-plugin azureanger värdet för Azure CNI.
Lägga till en nodpool
Som standard skapas alla AKS-kluster med en nodpool som kan köra Linux-containrar. Du måste lägga till en Windows-nodpool som kan köra Windows Server-containrar tillsammans med Linux-nodpoolen. Om du vill kontrollera om du har en Windows-nodpool i klustret kan du visa noderna i klustret med hjälp av kubectl get nodes -o wide kommandot .
Om du vill skapa en Windows-nodpool måste du ange en som stöds OsType och OsSku. Använd informationen i följande tabell för att avgöra vad som är lämpligt för klustret:
OsType |
OsSku |
Förinställning | K8s-versioner som stöds | Detaljer |
|---|---|---|---|---|
windows |
Windows2025 |
För närvarande i förhandsversion. Inte standard. | 1.32+ | Uppdaterade standardvärden: container 2.0, Generation 2-avbildning används som standard. |
windows |
Windows2022 |
Standard i K8s 1.25-1.35 | Inte tillgängligt i K8s 1.36+ | Går i pension i mars 2027. Uppdaterade standardvärden: FIPS är aktiverat som standard. |
windows |
Windows2019 |
Standardinställning i K8s 1.24 och lägre | Inte tillgängligt i K8s 1.33+ | Går i pension i mars 2026. |
Windows Server 2022 är standardoperativsystemet för Kubernetes version 1.25-1.35. Windows Server 2019 är standardoperativsystemet för tidigare versioner. Om du inte anger en viss OS SKU skapar Azure den nya nodpoolen med standard-SKU:n för den version av Kubernetes som används av klustret.
Anmärkning
- Windows Server 2019 dras tillbaka den 1 mars 2026. Efter det datumet skapar AKS inte längre nya nodbilder eller tillhandahåller säkerhetskorrigeringar. Efter det datumet kommer du inte att kunna skapa nya nodpooler med Windows Server 2019 på någon Kubernetes-version. Alla befintliga nodpooler med Windows Server 2019 stöds inte. Windows Server 2019 stöds inte i Kubernetes version 1.33 och senare. Från och med den 1 april 2027 tar AKS bort alla befintliga nodbilder för Windows Server 2019, vilket innebär att skalningsåtgärderna misslyckas.
- Windows Server 2022 dras tillbaka den 15 mars 2027. Efter det datumet skapar AKS inte längre nya nodbilder eller tillhandahåller säkerhetskorrigeringar. Efter det datumet kommer du inte att kunna skapa nya nodpooler med Windows Server 2022 på någon Kubernetes-version. Alla befintliga nodpooler med Windows Server 2022 stöds inte. Windows Server 2022 stöds inte i Kubernetes version 1.36 och senare. Från och med den 1 april 2028 tar AKS bort alla befintliga nodbilder för Windows Server 2022, vilket innebär att skalningsåtgärderna misslyckas.
Mer information finns i viktig information om AKS. Om du vill hålla dig uppdaterad om de senaste Versionerna av Windows Server-operativsystemet och lära dig mer om vår översikt över vad som planeras för stöd i AKS kan du läsa vår offentliga AKS-översikt.
Lägg till en Windows-nodpool genom att använda
az aks nodepool add-kommandot för att angeOsTypeochOsSku. Om du inte anger en viss OS SKU skapar Azure den nya nodpoolen med standard-SKU:n för den version av Kubernetes som används av klustret.az aks nodepool add \ --resource-group $MY_RESOURCE_GROUP_NAME \ --cluster-name $MY_AKS_CLUSTER \ --os-type Windows \ --os-sku Windows2022 \ --name npwin \ --node-count 1Det här kommandot skapar en ny nodpool med namnet npwin och lägger till den i myAKSCluster. Kommandot använder också standardundernätet i det virtuella standardnätverk som skapades när du körde
az aks create.
Anslut till klustret
Du använder kubectl, Kubernetes-kommandoradsklienten, för att hantera dina Kubernetes-kluster. Om du använder Azure Cloud Shell är kubectl redan installerat. Om du vill installera och köra kubectl lokalt använder du az aks install-cli kommandot .
Konfigurera
kubectlför att ansluta till kubernetes-klustret med hjälp avaz aks get-credentialskommandot . Det här kommandot laddar ned autentiseringsuppgifter och konfigurerar Kubernetes CLI för att använda dem.az aks get-credentials --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_AKS_CLUSTERKontrollera anslutningen till klustret med kommandot
kubectl getsom returnerar en lista över klusternoderna.kubectl get nodes -o wideFöljande exempelutdata visar alla noder i klustret. Kontrollera att statusen för alla noder är Klar:
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME aks-nodepool1-20786768-vmss000000 Ready agent 22h v1.27.7 10.224.0.4 <none> Ubuntu 22.04.3 LTS 5.15.0-1052-azure containerd://1.7.5-1 aks-nodepool1-20786768-vmss000001 Ready agent 22h v1.27.7 10.224.0.33 <none> Ubuntu 22.04.3 LTS 5.15.0-1052-azure containerd://1.7.5-1 aksnpwin000000 Ready agent 20h v1.27.7 10.224.0.62 <none> Windows Server 2022 Datacenter 10.0.20348.2159 containerd://1.6.21+azureAnmärkning
Containerkörningen för varje nodpool visas under CONTAINER-RUNTIME. Värdena för containerkörning börjar med
containerd://, vilket innebär att vart och ett användercontainerdför containerkörningen.
Distribuera programmet
En Kubernetes-manifestfil definierar ett önskat tillstånd för klustret, till exempel vilka containeravbildningar som ska köras. I den här artikeln använder du ett manifest för att skapa alla objekt som behövs för att köra ASP.NET exempelprogrammet i en Windows Server-container. Det här manifestet innehåller en Kubernetes-distribution för ASP.NET exempelprogram och en extern Kubernetes-tjänst för åtkomst till programmet från Internet.
Det ASP.NET exempelprogrammet tillhandahålls som en del av .NET Framework-exempel och körs i en Windows Server-container. AKS kräver att Windows Server-containrar baseras på avbildningar av Windows Server 2019 eller senare. Kubernetes-manifestfilen måste också definiera en nodväljare för att tala om för AKS-klustret att köra ASP.NET exempelprogrammets podd på en nod som kan köra Windows Server-containrar.
Skapa en fil med namnet
sample.yamloch kopiera i följande YAML-definition:apiVersion: apps/v1 kind: Deployment metadata: name: sample labels: app: sample spec: replicas: 1 template: metadata: name: sample labels: app: sample spec: nodeSelector: "kubernetes.io/os": windows containers: - name: sample image: mcr.microsoft.com/dotnet/framework/samples:aspnetapp resources: limits: cpu: 1 memory: 800M ports: - containerPort: 80 selector: matchLabels: app: sample --- apiVersion: v1 kind: Service metadata: name: sample spec: type: LoadBalancer ports: - protocol: TCP port: 80 selector: app: sampleEn uppdelning av YAML-manifestfiler finns i Distributioner och YAML-manifest.
Om du skapar och sparar YAML-filen lokalt kan du ladda upp manifestfilen till standardkatalogen i CloudShell genom att välja knappen Ladda upp/ladda ned filer och välja filen från det lokala filsystemet.
Distribuera programmet med kommandot
kubectl applyoch ange namnet på ditt YAML-manifest.kubectl apply -f sample.yamlFöljande exempelutdata visar distributionen och tjänsten som har skapats:
{ "deployment.apps/sample": "created", "service/sample": "created" }
Testa programmet
När programmet körs så exponerar en Kubernetes-tjänst programmets klientdel mot Internet. Den här processen kan ta ett par minuter att slutföra. Ibland kan det ta längre tid än några minuter att etablera tjänsten. Tillåt upp till 10 minuter för konfiguration.
Kontrollera statusen för de distribuerade poddarna med kommandot
kubectl get pods. Kontrollera att alla poddar ärRunninginnan du fortsätter.kubectl get podsÖvervaka förloppet med kommandot
kubectl get servicemed--watchargumentet .while true; do export EXTERNAL_IP=$(kubectl get service sample -o jsonpath="{.status.loadBalancer.ingress[0].ip}" 2>/dev/null) if [[ -n "$EXTERNAL_IP" && "$EXTERNAL_IP" != "<pending>" ]]; then kubectl get service sample break fi echo "Still waiting for external IP assignment..." sleep 5 doneInitialt visar utdata EXTERNAL-IP för exempeltjänsten som väntande:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE sample LoadBalancer xx.xx.xx.xx pending xx:xxxx/TCP 2mNär EXTERNAL-IP-adressen ändras från väntande till en faktisk offentlig IP-adress använder du
CTRL-Cför att stoppakubectl-övervakningsprocessen.Följande exempelutdata visar en giltig offentlig IP-adress som har tilldelats till tjänsten.
{ "NAME": "sample", "TYPE": "LoadBalancer", "CLUSTER-IP": "10.0.37.27", "EXTERNAL-IP": "52.179.23.131", "PORT(S)": "80:30572/TCP", "AGE": "2m" }Se exempelappen i praktiken genom att öppna en webbläsare till tjänstens externa IP-adress efter några minuter.
Nästa steg
I den här snabbstarten distribuerade du ett Kubernetes-kluster och distribuerade sedan ett ASP.NET exempelprogram i en Windows Server-container till det. Det här exempelprogrammet är endast i demosyfte och representerar inte alla metodtips för Kubernetes-program. Vägledning om hur du skapar fullständiga lösningar med AKS för produktion finns i AKS-lösningsvägledning.
Om du vill veta mer om AKS och gå igenom ett komplett exempel på kod-till-distribution fortsätter du till självstudiekursen för Kubernetes-klustret.
Azure Kubernetes Service