Upgrade imagí uzlů Služby Azure Kubernetes Service (AKS)

Azure Kubernetes Service (AKS) pravidelně poskytuje nové image uzlů, takže je vhodné často upgradovat image uzlů tak, aby používaly nejnovější funkce AKS. Image uzlů Linuxu se aktualizují každý týden a image uzlů Windows se aktualizují každý měsíc. Oznámení o upgradu imagí jsou součástí poznámek k verzi AKS a jejich uvedení do všech oblastí může trvat až týden. Upgrady imagí uzlů je možné provádět automaticky a naplánovat pomocí plánované údržby. Další informace najdete v tématu Automatické upgrade imagí uzlů.

V tomto článku se dozvíte, jak upgradovat image uzlů clusteru AKS a jak aktualizovat image fondu uzlů bez upgradu verze Kubernetes. Informace o upgradu verze Kubernetes pro váš cluster najdete v tématu Upgrade clusteru AKS.

Poznámka:

Cluster AKS musí pro uzly používat škálovací sady virtuálních počítačů.

Verzi image uzlu není možné downgradovat (například AKSUbuntu-2204 na AKSUbuntu-1804 nebo AKSUbuntu-2204-2204-202308.01.0 na AKSUbuntu-2204-202307.27.0).

Kontrola dostupných upgradů imagí uzlů

Pomocí příkazu zkontrolujte dostupné upgrady imagí az aks nodepool get-upgrades uzlů.

az aks nodepool get-upgrades \
    --nodepool-name mynodepool \
    --cluster-name myAKSCluster \
    --resource-group myResourceGroup

Výstup ukazuje latestNodeImageVersionnásledující příklad:

{
  "id": "/subscriptions/XXXX-XXX-XXX-XXX-XXXXX/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/agentPools/mynodepool/upgradeProfiles/default",
  "kubernetesVersion": "1.17.11",
  "latestNodeImageVersion": "AKSUbuntu-1604-2020.10.28",
  "name": "default",
  "osType": "Linux",
  "resourceGroup": "myResourceGroup",
  "type": "Microsoft.ContainerService/managedClusters/agentPools/upgradeProfiles",
  "upgrades": null
}

Příklad výstupu latestNodeImageVersionukazuje AKSUbuntu-1604-2020.10.28 jako .

Pomocí příkazu porovnejte nejnovější verzi s aktuální verzí az aks nodepool show image uzlu.

az aks nodepool show \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --query nodeImageVersion

Výstup by měl vypadat podobně jako v následujícím příkladu:

"AKSUbuntu-1604-2020.10.08"

V tomto příkladu je k dispozici upgrade verze image uzlu, která je z verze AKSUbuntu-1604-2020.10.08 na verzi AKSUbuntu-1604-2020.10.28.

Upgrade všech imagí uzlů ve všech fondech uzlů

Upgradujte image uzlu pomocí az aks upgrade příkazu s příznakem --node-image-only .

az aks upgrade \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-image-only

Stav imagí uzlů můžete zkontrolovat pomocí kubectl get nodes příkazu.

Poznámka:

Tento příkaz se může mírně lišit v závislosti na používaném prostředí. Další informace o prostředích Windows a PowerShellu najdete v dokumentaci Kubernetes JSONPath.

kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'

Po dokončení upgradu pomocí az aks show příkazu získejte aktualizované podrobnosti fondu uzlů. Aktuální image uzlu se zobrazí ve vlastnosti nodeImageVersion.

az aks show \
    --resource-group myResourceGroup \
    --name myAKSCluster

Upgrade konkrétního fondu uzlů

Pokud chcete aktualizovat image operačního systému fondu uzlů bez upgradu clusteru Kubernetes, použijte az aks nodepool upgrade příkaz s příznakem --node-image-only .

az aks nodepool upgrade \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --node-image-only

Pomocí příkazu můžete zkontrolovat stav imagí kubectl get nodes uzlů.

Poznámka:

Tento příkaz se může mírně lišit v závislosti na používaném prostředí. Další informace o prostředích Windows a PowerShellu najdete v dokumentaci Kubernetes JSONPath.

kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'

Po dokončení upgradu pomocí az aks nodepool show příkazu získejte aktualizované podrobnosti fondu uzlů. Aktuální image uzlu se zobrazí ve vlastnosti nodeImageVersion.

az aks nodepool show \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool

Upgrade imagí uzlů s využitím zvýšení počtu uzlů

Pokud chcete urychlit proces upgradu image uzlu, můžete image uzlů upgradovat pomocí přizpůsobitelné hodnoty nárůstu uzlu. AKS ve výchozím nastavení ke konfiguraci upgradů používá jeden další uzel.

Pokud chcete zvýšit rychlost upgradů, pomocí az aks nodepool update příkazu s --max-surge příznakem nakonfigurujte počet uzlů použitých pro upgrady. Další informace o kompromisech různých --max-surge nastavení najdete v tématu Přizpůsobení upgradu nárůstu uzlu.

az aks nodepool update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --max-surge 33% \
    --no-wait

Pomocí příkazu můžete zkontrolovat stav imagí kubectl get nodes uzlů.

kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'

Slouží az aks nodepool show k získání aktualizovaných podrobností fondu uzlů. Aktuální image uzlu se zobrazí ve vlastnosti nodeImageVersion.

az aks nodepool show \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool

Další kroky