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


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

Развертывание и изучение

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

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

Замечание

Кластеры с помощью автоматической подготовки узлов (NAP) автоматически обновляют образы узлов после того, как новый образ узла доступен по умолчанию, который также можно запланировать с помощью окон обслуживания. Дополнительные сведения см. в документации по обновлению образа узла NAP

Невозможно понизить версию образа узла (например, с AKSUbuntu-2404 на AKSUbuntu-2204 или с AKSUbuntu-2404-202601.27.0 на AKSUbuntu-2404-202601.13.0).

Подключение к кластеру AKS

  1. Подключитесь к вашему кластеру AKS, используя команду .

    az aks get-credentials \
        --resource-group $AKS_RESOURCE_GROUP \
        --name $AKS_CLUSTER
    

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

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

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

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

    az aks nodepool show \
        --resource-group $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL \
        --query nodeImageVersion
    
  4. Если значение отличается от значения , вы можете обновить образ узла.

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

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

    az aks upgrade \
        --resource-group $AKS_RESOURCE_GROUP \
        --name $AKS_CLUSTER \
        --node-image-only \
        --yes
    
  2. Вы можете проверить состояние образов узлов с помощью команды.

    Замечание

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

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

    az aks show \
        --resource-group $AKS_RESOURCE_GROUP \
        --name $AKS_CLUSTER  \
        --query "agentPoolProfiles[].{Name:name, NodeImageVersion:nodeImageVersion}"
    

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

  1. Обновите образ ОС в пуле рабочих узлов без обновления кластера Kubernetes с помощью команды и флага .

    az aks nodepool upgrade \
        --resource-group $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL \
        --node-image-only
    
  2. Вы можете проверить состояние образов узлов с помощью команды.

    Замечание

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

    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 \
        --resource-group $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL \
        --query nodeImageVersion
    

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

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

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

    Замечание

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

    az aks nodepool update \
        --resource-group $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL \
        --max-surge 33% \
        --no-wait
    
  2. Вы можете проверить состояние образов узлов с помощью команды.

    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 \
        --resource-group $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL \
        --query nodeImageVersion
    

Дальнейшие шаги