Kurz: Upgrade Kubernetes ve službě Azure Kubernetes Service (AKS)

V rámci životního cyklu aplikace a clusteru možná budete chtít provést upgrade na nejnovější dostupnou verzi Kubernetes a využívat nové funkce. Cluster Azure Kubernetes Service (AKS) je možné upgradovat pomocí Azure CLI.

V tomto kurzu, který je sedmou částí sedmidílné série, se upgraduje cluster Kubernetes. Získáte informace o těchto tématech:

  • Identifikace aktuální verze a dostupných verzí Kubernetes
  • Upgrade uzlů Kubernetes
  • Ověření úspěšného upgradu

Než začnete

V předchozích kurzech byla aplikace zabalena do image kontejneru. Tato image se nahrála do Azure Container Registry a vytvořili jste cluster AKS. Aplikace se pak nasadila do clusteru AKS. Pokud jste tyto kroky ještě neudělali a chcete postupovat s námi, začněte kurzem 1 – Vytváření imagí kontejneru.

Tento kurz vyžaduje použití Azure CLI verze 2.0.53 nebo novější. Verzi zjistíte spuštěním příkazu az --version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.

Získání dostupných verzí clusteru

Před upgradem clusteru pomocí příkazu az aks get-upgrades zkontrolujte, které vydané verze Kubernetes jsou pro upgrade k dispozici:

az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster

V následujícím příkladu je aktuální verze 1.18.10 a dostupné verze se zobrazují v části upgrady.

{
  "agentPoolProfiles": null,
  "controlPlaneProfile": {
    "kubernetesVersion": "1.18.10",
    ...
    "upgrades": [
      {
        "isPreview": null,
        "kubernetesVersion": "1.19.1"
      },
      {
        "isPreview": null,
        "kubernetesVersion": "1.19.3"
      }
    ]
  },
  ...
}

Upgrade clusteru

Aby se minimalizovalo přerušení spuštěných aplikací, uzly AKS jsou pečlivě provádřené a vyprázdněné. V tomto procesu se provádí následující kroky:

  1. Plánovač Kubernetes zabraňuje naplánování dalších podů na uzlu, který se má upgradovat.
  2. Spouštění podů v uzlu je naplánováno na jiných uzlech v clusteru.
  3. Vytvoří se uzel, který spouští nejnovější komponenty Kubernetes.
  4. Když je nový uzel připravený a připojený ke clusteru, plánovač Kubernetes na něj začne spouštět pody.
  5. Starý uzel se odstraní a další uzel v clusteru zahájí proces cordonu a vyprázdnit.

Cluster AKS můžete upgradovat pomocí příkazu az aks upgrade.

az aks upgrade \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --kubernetes-version KUBERNETES_VERSION

Poznámka

Najednou můžete upgradovat pouze jednu dílčí verzi. Můžete například upgradovat z verze 1.14.x na verzi 1.15.x, ale nemůžete upgradovat přímo z verze 1.14.x na verzi 1.16.x. Pokud chcete upgradovat z verze 1.14.x na verzi 1.16.x, nejprve upgradujte z verze 1.14.x na verzi 1.15.x a pak proveďte další upgrade z verze 1.15.x na verzi 1.16.x.

Následující zkrácený příklad výstupu ukazuje výsledek upgradu na verzi 1.19.1. Všimněte si, že kubernetesVersion teď hlásí 1.19.1:

{
  "agentPoolProfiles": [
    {
      "count": 3,
      "maxPods": 110,
      "name": "nodepool1",
      "osType": "Linux",
      "storageProfile": "ManagedDisks",
      "vmSize": "Standard_DS1_v2",
    }
  ],
  "dnsPrefix": "myAKSClust-myResourceGroup-19da35",
  "enableRbac": false,
  "fqdn": "myaksclust-myresourcegroup-19da35-bd54a4be.hcp.eastus.azmk8s.io",
  "id": "/subscriptions/<Subscription ID>/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster",
  "kubernetesVersion": "1.19.1",
  "location": "eastus",
  "name": "myAKSCluster",
  "type": "Microsoft.ContainerService/ManagedClusters"
}

Ověření upgradu

Následujícím způsobem ověřte úspěšné provedení upgradu pomocí příkazu az aks show:

az aks show --resource-group myResourceGroup --name myAKSCluster --output table

Následující příklad výstupu ukazuje, že cluster AKS používá KubernetesVersion 1.19.1:

Name          Location    ResourceGroup    KubernetesVersion    ProvisioningState    Fqdn
------------  ----------  ---------------  -------------------  -------------------  ----------------------------------------------------------------
myAKSCluster  eastus      myResourceGroup  1.19.1               Succeeded            myaksclust-myresourcegroup-19da35-bd54a4be.hcp.eastus.azmk8s.io

Odstranění clusteru

Vzhledem k tomu, že tento kurz je poslední částí série, možná budete chtít odstranit cluster AKS. Jelikož uzly prostředí Kubernetes běží na virtuálních počítačích v Azure, účtují se za ně poplatky, i když cluster nevyužíváte. 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, spravuje ji platforma a nevyžaduje zřizování ani obměně tajných kódů.

Další kroky

V tomto kurzu jste upgradovali Kubernetes v clusteru AKS. Naučili jste se:

  • Identifikace aktuální verze a dostupných verzí Kubernetes
  • Upgrade uzlů Kubernetes
  • Ověření úspěšného upgradu

Další informace o AKS najdete v tématu Přehled AKS. Pokyny k vytváření úplných řešení pomocí AKS najdete v tématu Pokyny k řešení AKS.