Upgrade clusteru Azure Kubernetes Service (AKS)Upgrade an Azure Kubernetes Service (AKS) cluster

Součástí životního cyklu clusteru AKS je provádění pravidelných upgradů na nejnovější verzi Kubernetes.Part of the AKS cluster lifecycle involves performing periodic upgrades to the latest Kubernetes version. Je důležité použít nejnovější verze zabezpečení nebo upgradovat, abyste získali nejnovější funkce.It is important you apply the latest security releases, or upgrade to get the latest features. V tomto článku se dozvíte, jak upgradovat hlavní komponenty nebo jeden výchozí fond uzlů v clusteru AKS.This article shows you how to upgrade the master components or a single, default node pool in an AKS cluster.

Clustery AKS, které používají více fondů uzlů nebo uzlů Windows serveru, najdete v tématu upgrade fondu uzlů v AKS.For AKS clusters that use multiple node pools or Windows Server nodes, see Upgrade a node pool in AKS.

Než začneteBefore you begin

Tento článek vyžaduje, abyste spustili Azure CLI verze 2.0.65 nebo novější.This article requires that you are running the Azure CLI version 2.0.65 or later. Verzi zjistíte spuštěním příkazu az --version.Run az --version to find the version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.If you need to install or upgrade, see Install Azure CLI.

Upozornění

Upgrade clusteru AKS spustí Cordon a vyprázdní uzly.An AKS cluster upgrade triggers a cordon and drain of your nodes. Pokud máte k dispozici nízkou kvótu výpočetních prostředků, upgrade může selhat.If you have a low compute quota available, the upgrade may fail. Další informace najdete v tématu zvýšení kvót .For more information, see increase quotas

Vyhledat dostupné upgrady clusteru AKSCheck for available AKS cluster upgrades

Chcete-li zjistit, které verze Kubernetes jsou pro váš cluster k dispozici, použijte příkaz AZ AKS Get-Upgrades .To check which Kubernetes releases are available for your cluster, use the az aks get-upgrades command. Následující příklad zkontroluje dostupné upgrady na myAKSCluster v myResourceGroup:The following example checks for available upgrades to myAKSCluster in myResourceGroup:

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

Poznámka

Pokud upgradujete podporovaný cluster AKS, nelze podverze Kubernetes vynechat.When you upgrade a supported AKS cluster, Kubernetes minor versions cannot be skipped. Všechny upgrady se musí provádět postupně podle hlavního čísla verze.All upgrades must be performed sequentially by major version number. 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.For example, upgrades between 1.14.x -> 1.15.x or 1.15.x -> 1.16.x are allowed, however 1.14.x -> 1.16.x is not allowed.

Přeskočení více verzí lze provést pouze při upgradu z nepodporované verze zpět na podporovanou verzi.Skipping multiple versions can only be done when upgrading from an unsupported version back to a supported version. Například upgrade z nepodporovaného prvku 1.10. x --> podporovanou 1.15. x lze dokončit.For example, an upgrade from an unsupported 1.10.x --> a supported 1.15.x can be completed.

Následující příklad výstupu ukazuje, že cluster je možné upgradovat na verze 1.19.1 a 1.19.3:The following example output shows that the cluster can be upgraded to versions 1.19.1 and 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:If no upgrade is available, you will get the message:

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íCustomize node surge upgrade

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í.Node surges require subscription quota for the requested max surge count for each upgrade operation. Například cluster s pěti fondy uzlů, každý s počtem 4 uzly, má celkem 20 uzlů.For example, a cluster that has 5 node pools, each with a count of 4 nodes, has a total of 20 nodes. 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ů).If each node pool has a max surge value of 50%, additional compute and IP quota of 10 nodes (2 nodes * 5 pools) is required to complete the upgrade.

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.If using Azure CNI, validate there are available IPs in the subnet as well to satisfy IP requirements of Azure CNI.

Ve výchozím nastavení AKS konfiguruje upgrady na přepětí s jedním dalším uzlem.By default, AKS configures upgrades to surge with one additional node. 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í.A default value of one for the max surge settings will enable AKS to minimize workload disruption by creating an additional node before the cordon/drain of existing applications to replace an older versioned node. 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.The max surge value may be customized per node pool to enable a trade-off between upgrade speed and upgrade disruption. 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.By increasing the max surge value, the upgrade process completes faster, but setting a large value for max surge may cause disruptions during the upgrade process.

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ě.For example, a max surge value of 100% provides the fastest possible upgrade process (doubling the node count) but also causes all nodes in the node pool to be drained simultaneously. Možná budete chtít použít vyšší hodnotu, například pro testovací prostředí.You may wish to use a higher value such as this for testing environments. Pro fondy produkčních uzlů doporučujeme nastavení max_surge 33%.For production node pools, we recommend a max_surge setting of 33%.

AKS přijímá jak celočíselné hodnoty, tak i procentuální hodnotu pro maximální nárůst.AKS accepts both integer values and a percentage value for max surge. Celé číslo, jako je "5", označuje pět dalších uzlů pro přepětí.An integer such as "5" indicates five additional nodes to surge. Hodnota "50%" označuje hodnotu přepětí na polovinu aktuálního počtu uzlů ve fondu.A value of "50%" indicates a surge value of half the current node count in the pool. Maximální procento nárůstu hodnoty může být minimálně 1% a maximálně 100%.Max surge percent values can be a minimum of 1% and a maximum of 100%. Procentuální hodnota se zaokrouhluje na nejbližší počet uzlů.A percent value is rounded up to the nearest node count. 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ů.If the max surge value is lower than the current node count at the time of upgrade, the current node count is used for the max surge value.

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ů.During an upgrade, the max surge value can be a minimum of 1 and a maximum value equal to the number of nodes in your node pool. 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.You can set larger values, but the maximum number of nodes used for max surge won't be higher than the number of nodes in the pool at the time of upgrade.

Důležité

Nastavení maximálního přepětí ve fondu uzlů je trvalé.The max surge setting on a node pool is permanent. Toto nastavení budou používat následné upgrady Kubernetes nebo upgrady verze uzlu.Subsequent Kubernetes upgrades or node version upgrades will use this setting. Maximální hodnotu nárůstu počtu fondů uzlů můžete kdykoli změnit.You may change the max surge value for your node pools at any time. Pro fondy produkčních uzlů doporučujeme nastavení maximálního přepětí 33%.For production node pools, we recommend a max-surge setting of 33%.

Pomocí následujících příkazů nastavte maximální hodnoty přepětí pro nové nebo existující fondy uzlů.Use the following commands to set max surge values for new or existing node pools.

# 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 AKSUpgrade an AKS cluster

Seznam dostupných verzí pro cluster AKS můžete upgradovat pomocí příkazu AZ AKS upgrade .With a list of available versions for your AKS cluster, use the az aks upgrade command to upgrade. Během procesu upgradu bude AKS:During the upgrade process, AKS will:

  • 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.add a new buffer node (or as many nodes as configured in max surge) to the cluster that runs the specified Kubernetes version.
  • 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).cordon and drain one of the old nodes to minimize disruption to running applications (if you're using max surge it will cordon and drain as many nodes at the same time as the number of buffer nodes specified).
  • 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.When the old node is fully drained, it will be reimaged to receive the new version and it will become the buffer node for the following node to be upgraded.
  • Tento proces se opakuje, dokud nebudou upgradovány všechny uzly v clusteru.This process repeats until all nodes in the cluster have been upgraded.
  • 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ě.At the end of the process, the last buffer node will be deleted, maintaining the existing agent node count and zone balance.
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.It takes a few minutes to upgrade the cluster, depending on how many nodes you have.

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ří.Ensure that any PodDisruptionBudgets (PDBs) allow for at least 1 pod replica to be moved at a time otherwise the drain/evict operation will fail. Pokud operace vyprázdnění selže, operace upgradu neprovede návrh, aby se zajistilo, že nedojde k přerušení aplikací.If the drain operation fails, the upgrade operation will fail by design to ensure that the applications are not disrupted. Opravte prosím, co způsobilo zastavení operace (nesprávné soubory PDB, nedostatek kvóty atd.), a opakujte operaci znovu.Please correct what caused the operation to stop (incorrect PDBs, lack of quota, and so on) and re-try the operation.

Pokud chcete ověřit, že upgrade proběhl úspěšně, použijte příkaz AZ AKS show :To confirm that the upgrade was successful, use the az aks show command:

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:The following example output shows that the cluster now runs 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 upgraduSet auto-upgrade channel

Kromě ručního upgradu clusteru můžete na svém clusteru nastavit kanál automatického upgradu.In addition to manually upgrading a cluster, you can set an auto-upgrade channel on your cluster. K dispozici jsou následující kanály upgradu:The following upgrade channels are available:

KanálChannel AkceAction PříkladExample
none zakáže automatické upgrady a zachová cluster v aktuální verzi Kubernetes.disables auto-upgrades and keeps the cluster at its current version of Kubernetes Výchozí nastavení, pokud zůstane beze změnyDefault setting if left unchanged
patch automaticky upgradovat cluster na nejnovější podporovanou verzi opravy, jakmile bude k dispozici, a přitom zachovat dílčí verzi.automatically upgrade the cluster to the latest supported patch version when it becomes available while keeping the minor version the same. 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.9For example, if a cluster is running version 1.17.7 and versions 1.17.9, 1.18.4, 1.18.6, and 1.19.1 are available, your cluster is upgraded to 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.automatically upgrade the cluster to the latest supported patch release on minor version N-1, where N is the latest supported minor version. 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.For example, if a cluster is running version 1.17.7 and versions 1.17.9, 1.18.4, 1.18.6, and 1.19.1 are available, your cluster is upgraded to 1.18.6.
rapid automaticky upgradovat cluster na nejnovější podporovanou verzi opravy na nejnovější verzi, která je k dispozici.automatically upgrade the cluster to the latest supported patch release on the latest supported minor version. 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.In cases where the cluster is at a version of Kubernetes that is at an N-2 minor version where N is the latest supported minor version, the cluster first upgrades to the latest supported patch version on N-1 minor version. 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.For example, if a cluster is running version 1.17.7 and versions 1.17.9, 1.18.4, 1.18.6, and 1.19.1 are available, your cluster first is upgraded to 1.18.6, then is upgraded to 1.19.1.

Poznámka

Automatický upgrade clusteru se aktualizuje jenom na verze GA Kubernetes a nebude se aktualizovat na verze Preview.Cluster auto-upgrade only updates to GA versions of Kubernetes and will not update to preview versions.

Automatické upgradování clusteru probíhá stejným způsobem jako ruční upgrade clusteru.Automatically upgrading a cluster follows the same process as manually upgrading a cluster. Další podrobnosti najdete v tématu upgrade clusteru AKS.For more details, see Upgrade an AKS cluster.

Automatický upgrade clusteru pro clustery AKS je funkce ve verzi Preview.The cluster auto-upgrade for AKS clusters is a preview feature.

Důležité

Funkce AKS ve verzi Preview jsou k dispozici na samoobslužné službě, na základě souhlasu.AKS preview features are available on a self-service, opt-in basis. 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.Previews are provided "as is" and "as available," and they're excluded from the service-level agreements and limited warranty. AKS verze Preview jsou částečně pokryté zákaznickou podporou na základě nejlepších úsilí.AKS previews are partially covered by customer support on a best-effort basis. V takovém případě tyto funkce nejsou určeny pro použití v produkčním prostředí.As such, these features aren't meant for production use. Funkce AKS ve verzi Preview nejsou k dispozici v cloudech Azure Government nebo Azure Čína 21Vianet.AKS preview features aren't available in Azure Government or Azure China 21Vianet clouds. Další informace najdete v následujících článcích podpory:For more information, see the following support articles:

Příznak funkce Zaregistrujte AutoUpgradePreview pomocí příkazu AZ Feature Register , jak je znázorněno v následujícím příkladu:Register the AutoUpgradePreview feature flag by using the az feature register command, as shown in the following example:

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

Zobrazení stavu v registraci trvá několik minut.It takes a few minutes for the status to show Registered. Pomocí příkazu AZ Feature list ověřte stav registrace:Verify the registration status by using the az feature list command:

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

Až budete připraveni, aktualizujte registraci poskytovatele prostředků Microsoft. ContainerService pomocí příkazu AZ Provider Register :When ready, refresh the registration of the Microsoft.ContainerService resource provider by using the az provider register command:

az provider register --namespace Microsoft.ContainerService

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.To set the auto-upgrade channel when creating a cluster, use the auto-upgrade-channel parameter, similar to the following example.

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.To set the auto-upgrade channel on existing cluster, update the auto-upgrade-channel parameter, similar to the following example.

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

Další krokyNext steps

Tento článek vám ukázal, jak upgradovat existující cluster AKS.This article showed you how to upgrade an existing AKS cluster. Další informace o nasazení a správě clusterů AKS najdete v tématu o sadě kurzů.To learn more about deploying and managing AKS clusters, see the set of tutorials.