Обновление образов узлов Службы Azure Kubernetes (AKS)

Служба Azure Kubernetes (AKS) регулярно предоставляет новые образы узлов, поэтому рекомендуется часто обновлять образы узлов, чтобы использовать последние функции AKS. Образы узлов Linux обновляются еженедельно, а образы узлов Windows обновляются ежемесячно. Объявления об обновлении изображений включены в заметки о выпуске AKS и могут занять до недели для развертывания этих обновлений во всех регионах. Обновления образов узла также можно выполнять автоматически и запланировать с помощью планового обслуживания. Дополнительные сведения см. в разделе "Автоматическое обновление образов узлов".

В этой статье показано, как обновить образы узлов кластера AKS и как обновить образы пула узлов без обновления версии Kubernetes. Сведения об обновлении версии Kubernetes для кластера см. в статье Обновление кластера AKS.

Примечание.

Кластер AKS должен использовать масштабируемые наборы виртуальных машин для узлов.

Невозможно изменить версию образа узла (например , AKSUbuntu-2204 до AKSUbuntu-1804 или AKSUbuntu-2204-202308.01.0 до AKSUbuntu-2204-202307.27.0).

Проверка доступных обновлений образа узла

Проверьте наличие доступных обновлений az aks nodepool get-upgrades образа узла с помощью команды.

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

В выходных данных показан пример latestNodeImageVersion, как показано в следующем примере:

{
  "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
}

В примере выходных latestNodeImageVersionданных отображается AKSUbuntu-1604-2020.10.28 значение .

Сравните последнюю версию с текущей версией образа узла с помощью az aks nodepool show команды.

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

Результат должен выглядеть примерно следующим образом:

"AKSUbuntu-1604-2020.10.08"

В этом примере доступно обновление версии образа узла, начиная с версии до версии AKSUbuntu-1604-2020.10.08AKSUbuntu-1604-2020.10.28.

Обновление всех образов узлов во всех пулах узлов

Обновите образ узла с помощью az aks upgrade команды с флагом --node-image-only .

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

Вы можете проверка состояние образов узлов с помощью kubectl get nodes команды.

Примечание.

Эта команда может немного отличаться в зависимости от используемой оболочки. Дополнительные сведения о средах Windows и PowerShell см. в документации по JSONPath Kubernetes.

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

По завершении обновления используйте az aks show команду, чтобы получить обновленные сведения о пуле узлов. Текущий образ узла отображается в свойстве nodeImageVersion.

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

Обновление определенного пула узлов

Чтобы обновить образ ОС пула узлов без обновления кластера Kubernetes, используйте az aks nodepool upgrade команду с флагом --node-image-only .

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

Вы можете проверка состояние образов узлов с kubectl get nodes помощью команды.

Примечание.

Эта команда может немного отличаться в зависимости от используемой оболочки. Дополнительные сведения о средах Windows и PowerShell см. в документации по JSONPath Kubernetes.

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

По завершении обновления используйте az aks nodepool show команду, чтобы получить обновленные сведения о пуле узлов. Текущий образ узла отображается в свойстве nodeImageVersion.

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

Обновление образов узлов со всплеском активности узлов

Чтобы ускорить процесс обновления образа узла, можно обновить образы узлов, используя настраиваемое значение всплеска активности узлов. По умолчанию AKS использует один дополнительный узел для настройки обновлений.

Если вы хотите увеличить скорость обновления, используйте az aks nodepool update команду с --max-surge флагом, чтобы настроить количество узлов, используемых для обновлений. Дополнительные сведения о компромиссах для различных параметров --max-surge см. в разделе Настройка обновления со всплеском активности узлов.

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

Вы можете проверка состояние образов узлов с kubectl get nodes помощью команды.

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

Используйте az aks nodepool show для получения обновленных сведений о пуле узлов. Текущий образ узла отображается в свойстве nodeImageVersion.

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

Следующие шаги