Upgrade clusteru Azure Kubernetes Service (AKS)

Součástí životního cyklu clusteru AKS je provádění pravidelných upgradů na nejnovější verzi Kubernetes. Je důležité použít nejnovější verze zabezpečení nebo upgradovat, abyste získali nejnovější funkce. V tomto článku se dozvíte, jak upgradovat hlavní komponenty nebo jeden výchozí fond uzlů v clusteru AKS.

Clustery AKS, které používají více fondů uzlů nebo uzlů Windows serveru, najdete v tématu upgrade fondu uzlů v AKS.

Než začnete

Tento článek vyžaduje, abyste spustili Azure CLI verze 2.0.65 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.

Upozornění

Upgrade clusteru AKS spustí Cordon a vyprázdní uzly. Pokud máte k dispozici nízkou kvótu výpočetních prostředků, upgrade může selhat. Další informace najdete v tématu zvýšení kvót .

Vyhledat dostupné upgrady clusteru AKS

Chcete-li zjistit, které verze Kubernetes jsou pro váš cluster k dispozici, použijte příkaz AZ AKS Get-Upgrades . Následující příklad zkontroluje dostupné upgrady na myAKSCluster v myResourceGroup:

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

Poznámka

Pokud upgradujete podporovaný cluster AKS, nelze podverze Kubernetes vynechat. Všechny upgrady se musí provádět postupně podle hlavního čísla verze. Například upgrady mezi otázku 1.14. x -> 1.15. x nebo 1.15. x -> 1.16. x jsou povoleny, ale 1.14. x -> 1.16. x není povoleno.

Přeskočení více verzí lze provést pouze při upgradu z nepodporované verze zpět na podporovanou verzi. Například upgrade z nepodporovaného prvku 1.10. x --> podporovanou 1.15. x lze dokončit.

Následující příklad výstupu ukazuje, že cluster je možné upgradovat na verze 1.19.1 a 1.19.3:

Name     ResourceGroup    MasterVersion    Upgrades
-------  ---------------  ---------------  --------------
default  myResourceGroup  1.18.10          1.19.1, 1.19.3

Pokud upgrade není k dispozici, zobrazí se zpráva:

ERROR: Table output unavailable. Use the --query option to specify an appropriate query. Use --debug for more info.

Přizpůsobení upgradu uzlu přepětí

Důležité

Nárůst počtu uzlů vyžaduje kvótu předplatného pro požadovaný maximální počet nárůstů pro každou operaci upgradu. Například cluster, který má 5 fondů uzlů, z nichž každý má počet 4 uzlů, má celkem 20 uzlů. Pokud má každý fond uzlů maximální nárůst hodnoty 50 %, k dokončení upgradu se vyžaduje další kvóta výpočetních prostředků a IP adres 10 uzlů (2 uzly * 5 fondů).

Pokud používáte Azure CNI, ověřte, že jsou v podsíti dostupné IP adresy a také aby splňovaly požadavky na IP Azure CNI.

Ve výchozím nastavení nakonfiguruje AKS upgrady tak, aby se přepsaly o jeden další uzel. Výchozí hodnota 1 pro nastavení maximálního nárůstu umožní AKS minimalizovat přerušení úloh vytvořením dalšího uzlu před cordonem nebo vyprázdněním existujících aplikací, které nahradí starší uzel s verzí. Maximální hodnota nárůstu je možné přizpůsobit pro každý fond uzlů, aby bylo možné vymáhnout mezi rychlostí upgradu a přerušením upgradu. Zvýšením hodnoty maximálního nárůstu se proces upgradu dokončí rychleji, ale nastavení velké hodnoty na maximální nárůst může způsobit přerušení během procesu upgradu.

Například hodnota maximálního nárůstu 100 % poskytuje nejrychlejší možný proces upgradu (zdvojnásobení počtu uzlů), ale také způsobí, že se všechny uzly ve fondu uzlů vyprázdní současně. Pro testovací prostředí můžete chtít použít vyšší hodnotu, jako je tato. Pro fondy produkčních uzlů doporučujeme nastavit max_surge 33 %.

AKS při maximálním nárůstu přijímá celočíselné i procentuální hodnoty. Celé číslo, například "5", označuje pět dalších uzlů, které se mají přetěžovat. Hodnota "50 %" označuje nárůst hodnoty poloviny aktuálního počtu uzlů ve fondu. Maximální procentuální hodnota nárůstu může být minimálně 1 % a maximálně 100 %. Hodnota procenta se zaokrouhlí nahoru na nejbližší počet uzlů. Pokud je hodnota maximálního nárůstu v době upgradu nižší než aktuální počet uzlů, použije se pro maximální nárůst aktuální počet uzlů.

Během upgradu může být hodnota maximálního nárůstu minimálně 1 a maximální hodnota rovna počtu uzlů ve fondu uzlů. Můžete nastavit větší hodnoty, ale maximální počet uzlů, které se mají použít pro maximální nárůst, nebude vyšší než počet uzlů ve fondu v době upgradu.

Důležité

Nastavení maximálního přepětí ve fondu uzlů je trvalé. Toto nastavení budou používat následné upgrady Kubernetes nebo upgrady verze uzlu. Maximální hodnotu nárůstu počtu fondů uzlů můžete kdykoli změnit. Pro fondy produkčních uzlů doporučujeme nastavení maximálního přepětí 33%.

Pomocí následujících příkazů nastavte maximální hodnoty přepětí pro nové nebo existující fondy uzlů.

# Set max surge for a new node pool
az aks nodepool add -n mynodepool -g MyResourceGroup --cluster-name MyManagedCluster --max-surge 33%
# Update max surge for an existing node pool 
az aks nodepool update -n mynodepool -g MyResourceGroup --cluster-name MyManagedCluster --max-surge 5

Upgrade clusteru AKS

Seznam dostupných verzí pro cluster AKS můžete upgradovat pomocí příkazu AZ AKS upgrade . Během procesu upgradu bude AKS:

  • Přidejte nový uzel vyrovnávací paměti (nebo tolik uzlů, jak jsou nakonfigurované v Max. nárůstu) do clusteru, na kterém je spuštěná zadaná verze Kubernetes.
  • Cordon a vyprázdní jeden ze starých uzlů, aby se minimalizovalo přerušení spouštění aplikací (Pokud používáte max. nárůst, Cordon a vyprázdní tolik uzlů ve stejnou dobu jako počet zadaných uzlů vyrovnávací paměti).
  • Když je starý uzel úplně vyprázdněný, obnoví se jeho image, aby se získala Nová verze, a ta se stane uzlem vyrovnávací paměti pro upgrade následujícího uzlu.
  • Tento proces se opakuje, dokud nebudou upgradovány všechny uzly v clusteru.
  • Na konci procesu se odstraní poslední uzel vyrovnávací paměti, čímž se zachová existující počet uzlů agenta a zůstatek v zóně.
az aks upgrade \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --kubernetes-version KUBERNETES_VERSION

Upgrade clusteru může trvat několik minut v závislosti na tom, kolik uzlů máte.

Důležité

Zajistěte, aby všechny PodDisruptionBudgets (soubory PDB) umožňovaly přesun alespoň 1 pod replikou v čase, v opačném případě se operace vyprázdnění/vyřazení nezdaří. Pokud operace vyprázdnění selže, operace upgradu neprovede návrh, aby se zajistilo, že nedojde k přerušení aplikací. Opravte prosím, co způsobilo zastavení operace (nesprávné soubory PDB, nedostatek kvóty atd.), a opakujte operaci znovu.

Pokud chcete ověřit, že upgrade proběhl úspěšně, použijte příkaz AZ AKS show :

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

Následující příklad výstupu ukazuje, že cluster teď spouští 1.18.10:

Name          Location    ResourceGroup    KubernetesVersion    ProvisioningState    Fqdn
------------  ----------  ---------------  -------------------  -------------------  ----------------------------------------------
myAKSCluster  eastus      myResourceGroup  1.18.10              Succeeded            myakscluster-dns-379cbbb9.hcp.eastus.azmk8s.io

Nastavení kanálu automatického upgradu

Kromě ručního upgradu clusteru můžete v clusteru nastavit kanál automatického upgradu. K dispozici jsou následující kanály upgradu:

Kanál Akce Příklad
none zakáže automatické upgrady a udržuje cluster ve své aktuální verzi Kubernetes. Výchozí nastavení, pokud zůstane beze změny
patch automaticky upgraduje cluster na nejnovější podporovanou verzi opravy, jakmile bude dostupná, a podverdu přitom bude stejná. Pokud například cluster používá verzi 1.17.7 a verze 1.17.9, 1.18.4, 1.18.6 a 1.19.1, cluster se upgraduje na verzi 1.17.9.
stable automaticky upgradujte cluster na nejnovější podporovanou verzi opravy podverd N-1, kde N je nejnovější podporovaná podververce. Pokud například cluster používá verzi 1.17.7 a verze 1.17.9, 1.18.4, 1.18.6 a 1.19.1, cluster se upgraduje na verzi 1.18.6.
rapid automaticky upgradovat cluster na nejnovější podporovanou verzi opravy v nejnovější podporované podveri. V případech, kdy je cluster ve verzi Kubernetes, která je v podverice N-2, kde N je nejnovější podporovaná podverce, cluster nejprve upgraduje na nejnovější podporovanou verzi opravy v podverci N-1. Pokud například cluster používá verzi 1.17.7 a jsou k dispozici verze 1.17.9, 1.18.4, 1.18.6 a 1.19.1, váš cluster se nejprve upgraduje na verzi 1.18.6 a pak se upgraduje na verzi 1.19.1.
node-image automaticky upgradovat image uzlu na nejnovější dostupnou verzi. Microsoft poskytuje opravy a nové image pro uzly imagí často (obvykle týdně), ale vaše spuštěné uzly nové image nezískat, pokud image uzlu upgradujete. Zapnutí kanálu node-image automaticky aktualizuje image uzlů vždy, když je k dispozici nová verze.

Poznámka

Automatický upgrade clusteru aktualizuje jenom verze Kubernetes verze GA a nebude se aktualizovat na verze Preview.

Automatický upgrade clusteru se řídí stejným postupem jako ruční upgrade clusteru. Další podrobnosti najdete v tématu Upgrade clusteru AKS.

Automatický upgrade clusteru pro clustery AKS je funkce Preview.

Důležité

Funkce AKS ve verzi Preview jsou k dispozici na samoobslužné službě, na základě souhlasu. Verze Preview jsou k dispozici "tak jak jsou" a "jako dostupné" a jsou vyloučeny ze smluv o úrovni služeb a omezené záruky. AKS verze Preview jsou částečně pokryté zákaznickou podporou na základě nejlepších úsilí. V takovém případě tyto funkce nejsou určeny pro použití v produkčním prostředí. Funkce AKS ve verzi Preview nejsou k dispozici v cloudech Azure Government nebo Azure Čína 21Vianet. Další informace najdete v následujících článcích podpory:

Zaregistrujte AutoUpgradePreview příznak funkce pomocí příkazu az feature register, jak je znázorněno v následujícím příkladu:

az feature register --namespace Microsoft.ContainerService -n AutoUpgradePreview

Zobrazení stavu Registrováno trvá několik minut. Pomocí příkazu az feature list ověřte stav registrace:

az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/AutoUpgradePreview')].{Name:name,State:properties.state}"

Až budete připravení, aktualizujte registraci poskytovatele prostředků Microsoft.ContainerService pomocí příkazu az provider register:

az provider register --namespace Microsoft.ContainerService

Pokud chcete nastavit kanál automatického upgradu při vytváření clusteru, použijte parametr auto-upgrade-channel, podobně jako v následujícím příkladu.

az aks create --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel stable --generate-ssh-keys

Pokud chcete nastavit kanál automatického upgradu na existujícím clusteru, aktualizujte parametr auto-upgrade-channel podobně jako v následujícím příkladu.

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

Použití automatického upgradu clusteru s plánovanou údržbou

Pokud používáte plánovanou údržbu i automatický upgrade, upgrade se spustí během zadaného časového období údržby. Další podrobnosti o plánované údržbě najdete v tématu Použití plánované údržby k naplánování časových období údržby pro cluster Azure Kubernetes Service (AKS) (Preview).

Další kroky

Tento článek vám ukázal, jak upgradovat existující cluster AKS. Další informace o nasazení a správě clusterů AKS najdete v sadě kurzů.