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ů.