Snabbstart: Distribuera ett Azure Kubernetes Service (AKS)-kluster med hjälp av en ARM-mall
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 snabbstarten kommer du att:
- Distribuera ett AKS-kluster med en Azure Resource Manager mall.
- Kör ett program med flera containrar med en webbwebbdel och en Redis-instans i klustret.

En ARM-mall är en JSON-fil (JavaScript Object Notation) som definierar infrastrukturen och konfigurationen för ditt projekt. Mallen använder deklarativ syntax. I deklarativ syntax beskriver du din avsedda distribution utan att skriva sekvensen med programmeringskommandon för att skapa den.
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 din miljö uppfyller förhandskraven och du är van att använda ARM-mallar väljer du knappen Distribuera till Azure. Mallen öppnas på Azure-portalen.
Om du inte har en Azure-prenumerationkan du skapa ett kostnads fritt konto innan du börjar.
Förutsättningar
Använd bash-miljön i Azure Cloud Shell.
Om du vill kan du i stället installera Azure CLI för att köra CLI-referenskommandon.
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. Fler inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas till det installerar du Azure CLI-tillägg vid första användning. Mer information om tillägg finns i Använda 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.61 eller senare av Azure CLI. Om du Azure Cloud Shell är den senaste versionen redan installerad.
Om du vill skapa ett AKS-kluster Resource Manager en mall anger du en offentlig SSH-nyckel. Om du behöver den här resursen kan du se följande avsnitt: gå annars till avsnittet Granska mallen.
Skapa ett SSH-nyckelpar
För att få åtkomst till AKS-noder ansluter du med hjälp av ett SSH-nyckelpar (offentligt och privat) som du genererar med ssh-keygen kommandot . Som standard skapas dessa filer i katalogen ~/.ssh. Om du ssh-keygen kör kommandot skriver du över alla SSH-nyckelpar med samma namn som redan finns på den angivna platsen.
Gå till https://shell.azure.com för att Cloud Shell i webbläsaren.
Kör kommandot
ssh-keygen. I följande exempel skapas ett SSH-nyckelpar med RSA-kryptering och en bitlängd på 2 048:ssh-keygen -t rsa -b 2048
Mer information om hur du skapar SSH-nycklar finns i Skapa och hantera SSH-nycklar för autentisering i Azure.
Granska mallen
Mallen som används i den här snabbstarten är från Azure snabbstartsmallar.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.4.412.5873",
"templateHash": "14640985186631737095"
}
},
"parameters": {
"clusterName": {
"type": "string",
"defaultValue": "aks101cluster",
"metadata": {
"description": "The name of the Managed Cluster resource."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "The location of the Managed Cluster resource."
}
},
"dnsPrefix": {
"type": "string",
"metadata": {
"description": "Optional DNS prefix to use with hosted Kubernetes API server FQDN."
}
},
"osDiskSizeGB": {
"type": "int",
"defaultValue": 0,
"maxValue": 1023,
"minValue": 0,
"metadata": {
"description": "Disk size (in GB) to provision for each of the agent pool nodes. This value ranges from 0 to 1023. Specifying 0 will apply the default disk size for that agentVMSize."
}
},
"agentCount": {
"type": "int",
"defaultValue": 3,
"maxValue": 50,
"minValue": 1,
"metadata": {
"description": "The number of nodes for the cluster."
}
},
"agentVMSize": {
"type": "string",
"defaultValue": "Standard_D2s_v3",
"metadata": {
"description": "The size of the Virtual Machine."
}
},
"linuxAdminUsername": {
"type": "string",
"metadata": {
"description": "User name for the Linux Virtual Machines."
}
},
"sshRSAPublicKey": {
"type": "string",
"metadata": {
"description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
}
}
},
"functions": [],
"resources": [
{
"type": "Microsoft.ContainerService/managedClusters",
"apiVersion": "2020-09-01",
"name": "[parameters('clusterName')]",
"location": "[parameters('location')]",
"identity": {
"type": "SystemAssigned"
},
"properties": {
"dnsPrefix": "[parameters('dnsPrefix')]",
"agentPoolProfiles": [
{
"name": "agentpool",
"osDiskSizeGB": "[parameters('osDiskSizeGB')]",
"count": "[parameters('agentCount')]",
"vmSize": "[parameters('agentVMSize')]",
"osType": "Linux",
"mode": "System"
}
],
"linuxProfile": {
"adminUsername": "[parameters('linuxAdminUsername')]",
"ssh": {
"publicKeys": [
{
"keyData": "[parameters('sshRSAPublicKey')]"
}
]
}
}
}
}
],
"outputs": {
"controlPlaneFQDN": {
"type": "string",
"value": "[reference(resourceId('Microsoft.ContainerService/managedClusters', parameters('clusterName'))).fqdn]"
}
}
}
Fler AKS-exempel finns på webbplatsen för AKS-snabbstartsmallar.
Distribuera mallen
Välj följande knapp för att logga in på Azure och öppna en mall.
Välj eller ange följande värden.
I den här snabbstarten lämnar du standardvärdena för OS-diskstorleken GB, Antal agenter, VM-agentstorlek, OS-typ och Kubernetes-version. Ange egna värden för följande mallparametrar:
- Prenumeration: Välj en Azure-prenumeration.
- Resursgrupp: Välj Skapa ny. Ange ett unikt namn för resursgruppen, till exempel myResourceGroup, och välj sedan OK.
- Plats: Välj en plats, till exempel USA, östra.
- Klusternamn: Ange ett unikt namn för AKS-klustret, till exempel myAKSCluster.
- DNS-prefix: Ange ett unikt DNS-prefix för klustret, till exempel myakscluster.
- Användarnamn för Linux-administratör: Ange ett användarnamn för att ansluta med SSH, till exempel azureuser.
- Offentlig SSH RSA-nyckel: Kopiera och klistra in den offentliga delen av ditt SSH-nyckelpar (som standard innehållet i ~/.ssh/id_rsa.pub).

Välj Granska + skapa.
Det tar några minuter att skapa AKS-klustret. Vänta tills klustret har distribuerats innan du går vidare till nästa steg.
Verifiera distributionen
Anslut till klustret
Om du vill hantera ett Kubernetes-kluster använder du Kubernetes-kommandoradsklienten kubectl. kubectl är redan installerat om du använder Azure Cloud Shell.
Installera
kubectllokalt med kommandot az aks install-cli:az aks install-cliKonfigurera
kubectlför att ansluta till kubernetes-klustret med kommandot az aks get-credentials. Det här kommandot laddar ned autentiseringsuppgifter och konfigurerar Kubernetes CLI för att använda dem.az aks get-credentials --resource-group myResourceGroup --name myAKSClusterVerifiera anslutningen till klustret med kommandot kubectl get. Det här kommandot returnerar en lista över klusternoderna.
kubectl get nodesUtdata visar noderna som skapades i föregående steg. Kontrollera att statusen för alla noder är Klar:
NAME STATUS ROLES AGE VERSION aks-agentpool-41324942-0 Ready agent 6m44s v1.12.6 aks-agentpool-41324942-1 Ready agent 6m46s v1.12.6 aks-agentpool-41324942-2 Ready agent 6m45s v1.12.6
Kör programmet
En Kubernetes-manifestfil definierar ett klusters önskade tillstånd, till exempel vilka containeravbildningar som ska köras.
I den här snabbstarten använder du ett manifest för att skapa alla objekt som behövs för att köra Azure Vote-programmet. Det här manifestet innehåller två Kubernetes-distributioner:
- Azure Vote Python-exempelprogrammen.
- En Redis-instans.
Två Kubernetes-tjänster skapas också:
- En intern tjänst för Redis-instansen.
- En extern tjänst för att få åtkomst till Azure Vote-programmet från Internet.
Skapa en fil som heter
azure-vote.yaml.- Om du använder Azure Cloud Shell kan den här filen skapas med hjälp av eller som om du
vinanoarbetar med ett virtuellt eller fysiskt system
- Om du använder Azure Cloud Shell kan den här filen skapas med hjälp av eller som om du
Kopiera följande YAML-definition:
apiVersion: apps/v1 kind: Deployment metadata: name: azure-vote-back spec: replicas: 1 selector: matchLabels: app: azure-vote-back template: metadata: labels: app: azure-vote-back spec: nodeSelector: "kubernetes.io/os": linux containers: - name: azure-vote-back image: mcr.microsoft.com/oss/bitnami/redis:6.0.8 env: - name: ALLOW_EMPTY_PASSWORD value: "yes" resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi ports: - containerPort: 6379 name: redis --- apiVersion: v1 kind: Service metadata: name: azure-vote-back spec: ports: - port: 6379 selector: app: azure-vote-back --- apiVersion: apps/v1 kind: Deployment metadata: name: azure-vote-front spec: replicas: 1 selector: matchLabels: app: azure-vote-front template: metadata: labels: app: azure-vote-front spec: nodeSelector: "kubernetes.io/os": linux containers: - name: azure-vote-front image: mcr.microsoft.com/azuredocs/azure-vote-front:v1 resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi ports: - containerPort: 80 env: - name: REDIS value: "azure-vote-back" --- apiVersion: v1 kind: Service metadata: name: azure-vote-front spec: type: LoadBalancer ports: - port: 80 selector: app: azure-vote-frontDistribuera programmet med kommandot kubectl apply och ange namnet på ditt YAML-manifest:
kubectl apply -f azure-vote.yamlUtdata visar de distributioner och tjänster som har skapats:
deployment "azure-vote-back" created service "azure-vote-back" created deployment "azure-vote-front" created service "azure-vote-front" 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.
Övervaka förloppet med kommandot kubectl get service med argumentet --watch .
kubectl get service azure-vote-front --watch
EXTERNAL-IP-utdata för azure-vote-front tjänsten visas initialt som väntande.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
azure-vote-front LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6s
När EXTERNAL-IP-adressen ändras från väntande till en faktisk offentlig IP-adress använder du CTRL-C för att stoppa kubectl bevakningsprocessen. Följande exempelutdata visar en giltig offentlig IP-adress som har tilldelats tjänsten:
azure-vote-front LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2m
Om du vill se hur Azure Vote-appen fungerar i praktiken så öppnar du en webbläsare till den externa IP-adressen för din tjänst.

Rensa resurser
Du kan undvika Azure-avgifter genom att rensa bort onödiga resurser. Använd kommandot az group delete för att ta bort resursgruppen, containertjänsten och alla relaterade resurser.
az group delete --name myResourceGroup --yes --no-wait
Anteckning
När du tar bort klustret tas Azure Active Directory-tjänstens huvudnamn, som används av AKS-klustret, inte bort. Stegvisa instruktioner om hur du tar bort tjänstens huvudnamn finns i dokumentationen om viktiga överväganden och borttagning av AKS-tjänsten.
Om du använde en hanterad identitet hanteras identiteten av plattformen och kräver inte borttagning.
Hämta koden
Befintliga containeravbildningar användes i den här snabbstarten för att skapa en Kubernetes-distribution. Relaterad programkod, Dockerfile och Kubernetes-manifestfil finns på GitHub.
Nästa steg
I den här snabbstarten distribuerade du ett Kubernetes-kluster och distribuerade sedan ett program med flera containrar till det. Öppna Kubernetes-webbinstrumentpanelen för ditt AKS-kluster.
Om du vill lära dig mer om AKS, och gå igenom ett exempel med fullständig distributionskod, fortsätter du till självstudiekursen om Kubernetes-kluster.
