Kurz – Upgrade clusteru Azure Kubernetes Service (AKS)

V rámci životního cyklu aplikace a clusteru můžete chtít upgradovat na nejnovější dostupnou verzi Kubernetes. Cluster Azure Kubernetes Service (AKS) můžete upgradovat pomocí Azure CLI, Azure PowerShellu nebo webu Azure Portal.

V tomto kurzu, který je sedmou částí sedmidílné části, upgradujete cluster AKS. Získáte informace pro:

  • Identifikujte aktuální a dostupné verze Kubernetes.
  • Upgradujte uzly Kubernetes.
  • Ověřte úspěšný upgrade.

Než začnete

V předchozích kurzech jste zabalili aplikaci do image kontejneru a nahráli image kontejneru do služby Azure Container Registry (ACR). Také jste vytvořili cluster AKS a nasadili do něj aplikaci. Pokud jste tyto kroky ještě nedokončili a chcete postupovat podle pokynů, začněte kurzem 1 – Příprava aplikace pro AKS.

Pokud používáte Azure CLI, tento kurz vyžaduje Azure CLI verze 2.34.1 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.

Pokud používáte Azure PowerShell, tento kurz vyžaduje Azure PowerShell verze 5.9.0 nebo novější. Verzi zjistíte spuštěním příkazu Get-InstalledModule -Name Az. Pokud potřebujete provést instalaci nebo upgrade, přečtěte si téma Instalace Azure PowerShellu.

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

  • Před upgradem pomocí příkazu zkontrolujte, které verze Kubernetes jsou pro váš cluster az aks get-upgrades k dispozici.

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

    Následující příklad výstupu ukazuje aktuální verzi jako 1.26.6 a uvádí dostupné verze v části upgrades:

    {
      "agentPoolProfiles": null,
      "controlPlaneProfile": {
        "kubernetesVersion": "1.26.6",
        ...
        "upgrades": [
          {
            "isPreview": null,
            "kubernetesVersion": "1.27.1"
          },
          {
            "isPreview": null,
            "kubernetesVersion": "1.27.3"
          }
        ]
      },
      ...
    }
    

Upgrade clusteru AKS

Uzly AKS jsou pečlivě prováděny a vyprázdněny, aby se minimalizovaly případné přerušení spuštěných aplikací. Během tohoto procesu provede AKS následující kroky:

  • Přidá do clusteru, na kterém běží zadaná verze Kubernetes, nový uzel vyrovnávací paměti (nebo libovolný počet uzlů nakonfigurovaných v maximálním nárůstu).
  • Cordons a vyprázdní jeden z starých uzlů, aby se minimalizovalo přerušení spuštěných aplikací. Pokud používáte maximální nárůst výkonu, kabelony a vyprázdní tolik uzlů najednou jako počet zadaných uzlů vyrovnávací paměti.
  • Když je starý uzel plně vyprázdněný, je zmagí, aby získal novou verzi a stane se uzlem vyrovnávací paměti pro následující uzel, který se má upgradovat.
  • Tento proces se opakuje, dokud nebudou upgradovány všechny uzly v clusteru.
  • Na konci procesu se odstraní poslední uzel vyrovnávací paměti a zachová se počet stávajících uzlů agenta a zůstatek zóny.

Poznámka:

Pokud není zadána žádná oprava, cluster se automaticky upgraduje na nejnovější opravu GA zadané podverze. Například nastavení --kubernetes-version pro 1.21 výsledky upgradu clusteru na 1.21.9.

Další informace najdete v tématu Podporované upgrady podverze Kubernetes v AKS.

Cluster můžete upgradovat ručně nebo nakonfigurovat automatické upgrady clusteru. Doporučujeme nakonfigurovat automatické upgrady clusteru, abyste měli jistotu, že váš cluster vždy používá nejnovější verzi Kubernetes.

Ruční upgrade clusteru

  • Upgradujte cluster pomocí az aks upgrade příkazu.

    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 1.16.x, musíte nejprve upgradovat z verze 1.14.x na 1.15.x a pak provést další upgrade z verze 1.15.x na 1.16.x.

    Následující příklad výstupu ukazuje výsledek upgradu na verzi 1.27.3. Všimněte si, že kubernetesVersion se teď zobrazuje verze 1.27.3:

    {
      "agentPoolProfiles": [
        {
          "count": 3,
          "maxPods": 110,
          "name": "nodepool1",
          "osType": "Linux",
          "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.27.3",
      "location": "eastus",
      "name": "myAKSCluster",
      "type": "Microsoft.ContainerService/ManagedClusters"
    }
    

Konfigurace automatických upgradů clusteru

  • Nastavte v clusteru kanál automatického upgradu pomocí az aks update příkazu s parametrem nastaveným --auto-upgrade-channel na patch.

    az aks update --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel patch
    

Další informace najdete v tématu Automatické upgrade clusteru Azure Kubernetes Service (AKS).

Upgrade imagí uzlů AKS

AKS pravidelně poskytuje nové image uzlů. Image uzlů Linuxu se aktualizují každý týden a image uzlů Windows se aktualizují každý měsíc. Doporučujeme upgradovat image uzlů často, aby používaly nejnovější funkce AKS a aktualizace zabezpečení. Další informace najdete v tématu Upgrade imagí uzlů ve službě Azure Kubernetes Service (AKS). Pokud chcete nakonfigurovat automatické upgrady imagí uzlů, přečtěte si téma Automatické upgrade imagí operačního systému uzlů clusteru Azure Kubernetes Service (AKS).

Zobrazení událostí upgradu

Poznámka:

Při upgradu clusteru můžou na uzlech nastat následující události Kubernetes:

  • Přepětí: Vytvoření uzlu přepětí
  • Vyprázdnění: Vyřazení podů z uzlu Každý pod má 5minutový časový limit pro dokončení vyřazení.
  • Aktualizace: Aktualizace uzlu byla úspěšná nebo selhala.
  • Odstranění: Odstraňte přepětí uzlu.
  • Pomocí příkazu zobrazte události upgradu ve výchozích kubectl get events oborech názvů.

    kubectl get events --field-selector source=upgrader
    

    Následující příklad výstupu ukazuje některé z výše uvedených událostí během upgradu:

    ...
    default 2m1s Normal Drain node/aks-nodepool1-96663640-vmss000001 Draining node: [aks-nodepool1-96663640-vmss000001]
    ...
    default 9m22s Normal Surge node/aks-nodepool1-96663640-vmss000002 Created a surge node [aks-nodepool1-96663640-vmss000002 nodepool1] for agentpool %!s(MISSING)
    ...
    

Ověření upgradu

  • Pomocí příkazu ověřte, že upgrade proběhl úspěšně az aks show .

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

    Následující příklad výstupu ukazuje, že cluster AKS spouští KubernetesVersion 1.27.3:

    Name          Location    ResourceGroup    KubernetesVersion    CurrentKubernetesVersion  ProvisioningState    Fqdn
    ------------  ----------  ---------------  -------------------  ------------------------  -------------------  ----------------------------------------------------------------
    myAKSCluster  eastus      myResourceGroup  1.27.3               1.27.3                    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, abyste se vyhnuli poplatkům za Azure.

  • Pomocí příkazu odeberte skupinu prostředků, službu kontejneru a všechny související prostředky az group delete .

    az group delete --name myResourceGroup --yes --no-wait
    

Poznámka:

Při odstranění clusteru se neodebere instanční objekt Microsoft Entra 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, identita je spravovaná platformou a nevyžaduje zřízení ani obměně tajných kódů.

Další kroky

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

  • Identifikujte aktuální a dostupné verze Kubernetes.
  • Upgradujte uzly Kubernetes.
  • Ověřte úspěšný upgrade.

Další informace o AKS najdete v přehledu AKS. Pokyny k vytváření úplných řešení pomocí AKS najdete v doprovodných materiálech k řešení AKS.