Поделиться через


Обновление образов узлов Службы 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).

Проверка наличия обновлений образов узла

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

    az aks nodepool get-upgrades \
        --nodepool-name <node-pool-name> \
        --cluster-name <cluster-name> \
        --resource-group <resource-group>
    
  2. В выходных данных найдите значение latestNodeImageVersion и запишите его. Это значение представляет собой последнюю версию образа узла, доступную для пула узлов.

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

    az aks nodepool show \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --query nodeImageVersion
    
  4. Если значение nodeImageVersion отличается от значения latestNodeImageVersion, вы можете обновить образ узла.

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

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

    az aks upgrade \
        --resource-group <resource-group> \
        --name <cluster-name> \
        --node-image-only
    
  2. Вы можете проверить состояние образов узлов с помощью 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}'
    
  3. По завершении обновления используйте az aks show команду, чтобы получить обновленные сведения о пуле узлов. Текущий образ узла отображается в свойстве nodeImageVersion.

    az aks show \
        --resource-group <resource-group> \
        --name <cluster-name>
    

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

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

    az aks nodepool upgrade \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --node-image-only
    
  2. Вы можете проверить состояние образов узлов с помощью 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}'
    
  3. По завершении обновления используйте az aks nodepool show команду, чтобы получить обновленные сведения о пуле узлов. Текущий образ узла отображается в свойстве nodeImageVersion.

    az aks nodepool show \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name>
    

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

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

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

    Примечание.

    Дополнительные сведения о компромиссах для различных параметров --max-surge см. в разделе Настройка обновления со всплеском активности узлов.

    az aks nodepool update \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --max-surge 33% \
        --no-wait
    
  2. Вы можете проверить состояние образов узлов с помощью kubectl get nodes команды.

    kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
    
  3. Получите обновленные сведения о пуле узлов, используя az aks nodepool show. Текущий образ узла отображается в свойстве nodeImageVersion.

    az aks nodepool show \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name>
    

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