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


Автоматизация обновлений образов Kubernetes и узлов в нескольких кластерах с помощью Azure Kubernetes Fleet Manager (предварительная версия)

Администраторы платформы, управляющие большим количеством кластеров, часто имеют проблемы с промежуточными обновлениями нескольких кластеров (например, обновление образа ОС узла или версий Kubernetes) безопасным и предсказуемым способом. Чтобы устранить эту проблему, диспетчер флотов Azure Kubernetes (Fleet) позволяет управлять обновлениями в нескольких кластерах с помощью запусков обновлений.

Запуски обновлений состоят из этапов, групп и стратегий и могут применяться вручную, для однократных обновлений или автоматически для текущих регулярных обновлений с помощью профилей автоматического обновления. Все запуски обновлений (вручную или автоматизированные) выполняются в период обслуживания кластера-члена.

В этой статье описывается, как использовать профили автоматического обновления для автоматического запуска обновлений при наличии новых версий образов Kubernetes или узлов.

Внимание

Предварительные версии функций Azure Kubernetes Fleet Manager доступны на основе самообслуживания. Предварительные версии предоставляются "как есть" и "при наличии". На них не распространяются соглашения об уровне обслуживания и ограниченная гарантия. Предварительные версии Диспетчера флотов Azure Kubernetes частично охватываются поддержкой клиентов на основе лучших усилий. Следовательно, эти функции не предназначены для использования в рабочей среде.

Необходимые компоненты

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

  • У вас должен быть ресурс Fleet с одним или несколькими кластерами-членами. Если нет, выполните краткое руководство по созданию ресурса Fleet и присоединению кластеров Служба Azure Kubernetes (AKS) в качестве членов.

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

  • Установите указанные ниже переменные среды.

    export GROUP=<resource-group>
    export FLEET=<fleet-name>
    export AUTOUPGRADEPROFILE=<upgrade-profile-name>
    # Optional
    export STRATEGYID=<strategy-id>
    export CLUSTER=<ask-cluster-name>
    
  • Вам нужна версия Azure CLI 2.61.0 или более поздняя. Чтобы выполнить установку или обновление Azure CLI, ознакомьтесь с этой статьей.

  • Вам также потребуется fleet расширение Azure CLI версии 1.3.0 или более поздней версии, которое можно установить, выполнив следующую команду:

    az extension add --name fleet
    

    Выполните следующую команду, чтобы обновить до последней версии выпущенного расширения:

    az extension update --name fleet
    

Примечание.

Автоматическое обновление запускается с учетом запланированных периодов обслуживания, установленных на уровне кластера AKS. Дополнительные сведения см. в статье плановое обслуживание в нескольких кластерах-членах, в которых объясняется, как запуски обновления обрабатывают кластеры-члены , настроенные с запланированными периодами обслуживания.

Создание профилей автоматического обновления

Используйте команду для создания профилей az fleet autoupgradeprofile create , как показано ниже.

Профиль автоматического обновления можно создать, передав --disabled аргумент при использовании create команды. Чтобы включить профиль автоматического обновления, необходимо переиздать всю create команду и опустить --disabled аргумент.

Обновления Kubernetes для стабильного канала

Обновите последнюю поддерживаемую версию исправлений Kubernetes в дополнительной версии N-1, где N является последней поддерживаемой дополнительной версией.

Обновите кластеры членов последовательно по одному.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel Stable

Обновите кластеры членов с помощью существующей стратегии обновления.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel Stable

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

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel Stable \
  --node-image-selection-type Consistent

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

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel Stable \
  --node-image-selection-type Latest

Обновления образа узла

Обновите узлы с новым исправленным виртуальным жестким диском, содержащим исправления безопасности и исправления ошибок.

Обновите образы узлов для кластеров-членов, обрабатывая кластеры последовательно по одному.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel NodeImage

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

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel NodeImage 

Просмотр профиля автоматического обновления

Для просмотра профиля автоматического обновления можно использовать autoupgradeprofile list команды или autoupgradeprofile show команды.

Список всех профилей автоматического обновления для парка.

az fleet autoupgradeprofile list \
  --resource-group $GROUP \
  --fleet-name $FLEET

Отображение определенного профиля автоматического обновления для парка.

az fleet autoupgradeprofile list \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE

Удаление профиля автоматического обновления

Используйте следующую команду, чтобы удалить существующий профиль автоматического обновления. Вам будет предложено подтвердить удаление. Если вы хотите немедленно удалить профиль, включите --yes.

az fleet autoupgradeprofile delete \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE

Проверка автоматического обновления

Автоматическое обновление произойдет только в том случае, если новые образы Kubernetes или узлов становятся доступными. Вы можете проверить существующие версии в качестве базовых показателей, как показано ниже.

# Get Kubernetes version for a member cluster
az aks show \
  --resource-group $GROUP \
  --name $CLUSTER \
  --query currentKubernetesVersion
# Get NodeImage version for a member cluster
az aks show \
  --resource-group $GROUP \
  --name $CLUSTER \
  --query "agentPoolProfiles[].{name:name,mode:mode, nodeImageVersion:nodeImageVersion, osSku:osSku, osType:osType}"

После завершения выполнения обновления можно повторно запустить эти команды и просмотреть обновленные версии, развернутые.