Rychlý start: Nasazení clusteru Azure Kubernetes Service (AKS) pomocí šablony ARM
Azure Kubernetes Service (AKS) je spravovaná služba Kubernetes, která umožňuje rychle nasazovat a spravovat clustery. V tomto rychlém startu:
- Nasaďte cluster AKS pomocí Azure Resource Manager šablony.
- Spusťte vícekon kontejnerovou aplikaci s webovým front-endem a instancí Redis v clusteru.

Šablona Resource ARM je soubor JSON (JavaScript Object Notation), který definuje infrastrukturu a konfiguraci projektu. Tato šablona používá deklarativní syntaxi. V deklarativní syntaxi popíšete zamýšlené nasazení, aniž byste museli psát sekvenci programovacích příkazů pro vytvoření tohoto nasazení.
Tento rychlý start předpokládá základní znalosti konceptů Kubernetes. Další informace najdete v tématu Základní koncepty Kubernetes pro Azure Kubernetes Service (AKS).
Pokud vaše prostředí splňuje požadavky a jste obeznámeni s používáním šablon ARM, vyberte tlačítko Nasazení do Azure. Šablona se otevře v prostředí Azure Portal.
Pokud ještě nemáte předplatné Azure,vytvořte si bezplatný účet před tím, než začnete.
Požadavky
V nástroji použijte prostředí Bash Azure Cloud Shell.
Pokud tomu dáváte přednost, můžete nainstalovat Azure CLI a spouštět referenční příkazy CLI.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení jsou popsané v tématu Přihlášení pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
Tento článek vyžaduje azure CLI verze 2.0.61 nebo novější. Pokud používáte Azure Cloud Shell, je už nainstalovaná nejnovější verze.
Pokud chcete vytvořit cluster AKS pomocí Resource Manager, zadejte veřejný klíč SSH. Pokud tento prostředek potřebujete, podívejte se do následující části. v opačném případě přejděte do části Kontrola šablony.
Vytvoření páru klíčů SSH
Pokud chcete získat přístup k uzlům AKS, připojte se pomocí páru klíčů SSH (veřejný a privátní), který vygenerujete pomocí ssh-keygen příkazu . Ve výchozím nastavení se tyto soubory vytvoří v adresáři ~/.ssh. Spuštěním příkazu ssh-keygen přepíšete všechny páry klíčů SSH se stejným názvem, který už v daném umístění existuje.
Přejděte na https://shell.azure.com a otevřete Cloud Shell v prohlížeči.
Spusťte příkaz
ssh-keygen. Následující příklad vytvoří pár klíčů SSH pomocí šifrování RSA a bitové délky 2048:ssh-keygen -t rsa -b 2048
Další informace o vytváření klíčů SSH najdete v tématu Vytváření a správa klíčů SSH pro ověřování v Azure.
Kontrola šablony
Šablona použitá v tomto rychlém startu je jednou z šablon pro rychlý start Azure.
{
"$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]"
}
}
}
Další ukázky AKS najdete na webu šablon pro rychlý start pro AKS.
Nasazení šablony
Výběrem následujícího tlačítka se přihlaste k Azure a otevřete šablonu.
Vyberte nebo zadejte následující hodnoty.
Pro tento rychlý start ponechte výchozí hodnoty pro velikost disku s operačním systémem GB, počet agentů, velikost virtuálního počítače agenta, typ operačního systému a verzi Kubernetes. Zadejte vlastní hodnoty pro následující parametry šablony:
- Předplatné: Vyberte předplatné Azure.
- Skupina prostředků: Vyberte Vytvořit novou. Zadejte jedinečný název skupiny prostředků, například myResourceGroup, a pak zvolte OK.
- Umístění: Vyberte umístění, například USA – východ.
- Název clusteru: Zadejte jedinečný název clusteru AKS, například myAKSCluster.
- Předpona DNS: Zadejte jedinečnou předponu DNS pro váš cluster, například myakscluster.
- Uživatelské jméno správce Linuxu: Zadejte uživatelské jméno pro připojení pomocí SSH, například azureuser.
- Veřejný klíč SSH RSA: Zkopírujte a vložte veřejnou část páru klíčů SSH (ve výchozím nastavení obsah ~/.ssh/id_rsa.pub).

Vyberte Zkontrolovat a vytvořit.
Vytvoření clusteru AKS bude trvat několik minut. Počkejte, až se cluster úspěšně nasadí, a pak přejděte k dalšímu kroku.
Ověření nasazení
Připojení ke clusteru
Ke správě clusteru Kubernetes použijte klienta příkazového řádku Kubernetes kubectl. kubectl je již nainstalován, pokud používáte Azure Cloud Shell.
Místní
kubectlinstalace pomocí příkazu az aks install-cli:az aks install-cliPomocí
kubectlpříkazu az aks get-credentials nakonfigurujte připojení ke clusteru Kubernetes. Tento příkaz stáhne přihlašovací údaje a nakonfiguruje rozhraní příkazového řádku Kubernetes tak, aby je bylo možné používat.az aks get-credentials --resource-group myResourceGroup --name myAKSClusterOvěřte připojení ke clusteru pomocí příkazu kubectl get. Tento příkaz vrátí seznam uzlů clusteru.
kubectl get nodesVýstup ukazuje uzly vytvořené v předchozích krocích. Ujistěte se, že stav všech uzlů je Připraveno:
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
Spuštění aplikace
Soubor manifestu Kubernetes definuje požadovaný stav clusteru, například to, které image kontejneru se mají spustit.
V tomto rychlém startu použijete manifest k vytvoření všech objektů potřebných ke spuštění aplikace Azure Vote. Tento manifest zahrnuje dvě nasazení Kubernetes:
- Ukázkové aplikace Azure Vote v Pythonu.
- Instance Redis.
Vytvoří se také dvě služby Kubernetes:
- Interní služba pro instanci Redis.
- Externí služba pro přístup k aplikaci Azure Vote z internetu.
Vytvořte soubor s názvem
azure-vote.yaml.- Pokud použijete následující Azure Cloud Shell, můžete tento soubor vytvořit pomocí příkazu nebo jako při práci na
vinanovirtuálním nebo fyzickém systému.
- Pokud použijete následující Azure Cloud Shell, můžete tento soubor vytvořit pomocí příkazu nebo jako při práci na
Zkopírujte následující definici YAML:
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-frontNasaďte aplikaci pomocí příkazu kubectl apply a zadejte název manifestu YAML:
kubectl apply -f azure-vote.yamlVýstup ukazuje úspěšně vytvořená nasazení a služby:
deployment "azure-vote-back" created service "azure-vote-back" created deployment "azure-vote-front" created service "azure-vote-front" created
Testování aplikace
Při spuštění aplikace služba Kubernetes zpřístupní front-end aplikace na internetu. Dokončení tohoto procesu může trvat několik minut.
Průběh můžete monitorovat pomocí příkazu kubectl get service s --watch argumentem .
kubectl get service azure-vote-front --watch
Výstup EXTERNAL-IP pro službu se zpočátku zobrazí azure-vote-front jako čekající.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
azure-vote-front LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6s
Jakmile se externí IP adresa změní z čekající na skutečnou veřejnou IP adresu, pomocí CTRL-C zastavte proces kubectl sledování. Následující příklad výstupu ukazuje platnou veřejnou IP adresu přiřazenou ke službě:
azure-vote-front LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2m
Pokud chcete vidět aplikaci Azure Vote v akci, otevřete webový prohlížeč s externí IP adresou vaší služby.

Vyčištění prostředků
Pokud se chcete vyhnout poplatkům za Azure, vyčistěte nepotřebné prostředky. Pomocí příkazu az group delete odeberete skupinu prostředků, službu kontejneru a všechny související prostředky.
az group delete --name myResourceGroup --yes --no-wait
Poznámka
Při odstranění clusteru se neodebere instanční objekt služby Azure Active Directory používaný clusterem AKS. Postup odebrání instančního objektu najdete v tématu věnovaném aspektům instančního objektu AKS a jeho odstranění.
Pokud jste použili spravovanou identitu, je identita spravovaná platformou a nevyžaduje odebrání.
Získání kódu
V tomto rychlém startu se použily už existující image kontejnerů k vytvoření nasazení Kubernetes. Související kód aplikace, soubor Dockerfile a soubor manifestu Kubernetes jsou k dispozici na GitHub.
Další kroky
V tomto rychlém startu jste nasadili cluster Kubernetes a pak jste do něj nasadili více kontejnerovou aplikaci. Přístup k webovému řídicímu panelu Kubernetes pro cluster AKS
Další informace o službě AKS a podrobné vysvětlení kompletního příkladu od kódu až po nasazení najdete v kurzu clusteru Kubernetes.
