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.

u clusterů AKS, které používají více fondů uzlů nebo Windowsch uzlů serveru, najdete informace 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é

Pro každou operaci upgradu se u uzlů přepětí vyžaduje kvóta předplatného pro požadovaný maximální počet přepětí. Například cluster s pěti fondy uzlů, každý s počtem 4 uzly, má celkem 20 uzlů. Pokud má každý fond uzlů hodnotu maximálního nárůstu 50%, pro dokončení upgradu se vyžaduje další výpočetní a IP kvóta 10 uzlů (2 uzly * 5 fondů).

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

Ve výchozím nastavení AKS konfiguruje upgrady na přepětí s jedním dalším uzlem. Výchozí hodnota jednoho pro maximální nastavení přepětí umožní AKS minimalizovat narušení úlohy vytvořením dalšího uzlu předtím, než Cordon/vyprázdní stávající aplikace nahradí starší uzel s verzí. Hodnota maximálního přepětí může být přizpůsobená pro každý fond uzlů, aby bylo možné kompromis mezi rychlostí upgradu a přerušením upgradu. Zvýšením maximální hodnoty přepětí dojde k rychlejšímu dokončení procesu upgradu, ale nastavení vysoké hodnoty pro maximální nárůst může způsobit přerušení během procesu upgradu.

Například maximální hodnota přepětí 100% poskytuje nejrychlejší možný proces upgradu (zdvojnásobuje počet uzlů), ale také způsobí, že všechny uzly ve fondu uzlů budou vyprázdněny současně. Možná budete chtít použít vyšší hodnotu, například pro testovací prostředí. Pro fondy produkčních uzlů doporučujeme nastavení max_surge 33%.

AKS přijímá jak celočíselné hodnoty, tak i procentuální hodnotu pro maximální nárůst. Celé číslo, jako je "5", označuje pět dalších uzlů pro přepětí. Hodnota "50%" označuje hodnotu přepětí na polovinu aktuálního počtu uzlů ve fondu. Maximální procento nárůstu hodnoty může být minimálně 1% a maximálně 100%. Procentuální hodnota se zaokrouhluje na nejbližší počet uzlů. Pokud je maximální hodnota přepětí nižší než aktuální počet uzlů v době upgradu, použije se pro maximální hodnotu přepětí aktuální počet uzlů.

Během upgradu může být maximální hodnota přepětí minimálně 1 a maximální hodnota se rovná 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 na svém 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 zachová cluster v aktuální verzi Kubernetes. Výchozí nastavení, pokud zůstane beze změny
patch automaticky upgradovat cluster na nejnovější podporovanou verzi opravy, jakmile bude k dispozici, a přitom zachovat dílčí verzi. Pokud je například v clusteru spuštěná verze 1.17.7 a verze 1.17.9, 1.18.4, 1.18.6 a 1.19.1 , váš cluster se upgraduje na 1.17.9
stable automaticky upgradujte cluster na nejnovější podporovanou verzi opravy v podverzi n-1, kde n je nejnovější podporovaná dílčí verze. Pokud je například v clusteru spuštěná verze 1.17.7 a verze 1.17.9, 1.18.4, 1.18.6 a 1.19.1 , váš cluster se upgraduje na 1.18.6.
rapid automaticky upgradovat cluster na nejnovější podporovanou verzi opravy na nejnovější verzi, která je k dispozici. V případech, kdy je cluster ve verzi Kubernetes, která je v podverzi n-2 , kde n je nejnovější podporovaná dílčí verze, cluster nejprve upgraduje na nejnovější podporovanou verzi opravy v N-1 dílčí verzi. Pokud je například v clusteru spuštěná verze 1.17.7 a verze 1.17.9, 1.18.4, 1.18.6 a 1.19.1 , je váš cluster nejdřív upgradován na 1.18.6 a pak se upgraduje na 1.19.1.
node-image automaticky upgradujte image uzlu na nejnovější dostupnou verzi. Microsoft poskytuje opravy a nové image pro uzly imagí často (obvykle týdně), ale spuštěné uzly nezískají nové image, Pokud neprovedete upgrade uzlu image. Pokud je k dispozici nová verze, kanál s obrázkem uzlu bude automaticky aktualizovat obrázky uzlů.

Poznámka

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

Automatické upgradování clusteru probíhá stejným způsobem jako ruční upgrade clusteru. Další podrobnosti najdete v tématu upgrade clusteru AKS.

K nastavení kanálu automatického upgradu při vytváření clusteru použijte parametr pro automatické upgrady , 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 automatického upgradu na kanál podobný následujícímu 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 a zároveň 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 plánování časových období údržby pro cluster Azure Kubernetes Service (AKS) (Preview).

Zvláštní požadavky na fondy uzlů, které přesahují více Zóny dostupnosti

AKS využívá k vyrovnávání zón nejlepší úsilí ve skupinách uzlů. V průběhu upgradu jsou zóny (y) pro uzly přepětí ve službě Virtual Machine Scale Sets neznámy předem. To může dočasně způsobit nevyváženou konfiguraci zóny během upgradu. AKS však odstraní uzel přepětí po dokončení upgradu a zachová původní zůstatek zóny. Pokud si přejete zachovat vyvážené zóny během upgradu, zvyšte nárůst na násobek 3 uzlů. Služba Virtual Machine Scale Sets pak vyrovnává vaše uzly napříč Zóny dostupnosti s využitím vyrovnávání zóny s nejlepší námahou.

Pokud máte trvalé virtuální okruhy, které používají disky Azure LRS, budou vázány na konkrétní zónu a nemusí se okamžitě obnovit, pokud se uzel přepětí neshoduje s zónou TRVALÉho přístupu. To může způsobit výpadky aplikace v případě, že operace upgradu nadále vyprázdní uzly, ale PVs jsou vázány na zónu. Pokud chcete tento případ zpracovat a zachovat vysokou dostupnost, nakonfigurujte u své aplikace rozpočet přerušení pod . To umožňuje Kubernetes respektovat vaše požadavky na dostupnost během operace vyprázdnění upgradu.

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 tématu o sadě kurzů.