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


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

Область применения: ✔️ Менеджер автопарка ✔️ Менеджер автопарка с кластером концентратора

Обеспечение своевременного и безопасного обновления кластеров является ключевой проблемой администраторов платформы. После того как администратор примет Azure Kubernetes Fleet Manager Update Runs and Strategies, они могут использовать профили автоматического обновления для автоматизации выполнения обновлений при выпуске новых версий образов Kubernetes или узлов.

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

Примечание.

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

Перед тем как начать

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

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

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

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

Начните с выполнения этих действий, чтобы убедиться, что среда настроена правильно.

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

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

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

    az extension add --name fleet
    

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

    az extension update --name fleet
    

Используйте команду для создания профилей 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 Consistent

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

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

Целевые обновления дополнительных версий Kubernetes (предварительная версия)

Обновите до заданной целевой минорной версии Kubernetes, используя параметр --target-kubernetes-version, указав версию в формате {основная версия}.{минорная версия} (например, 1.33). Автоматическое обновление парка автоматически обновляет кластеры-члены до последнего выпуска исправлений указанной целевой версии при наличии исправления.

Это важно

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

Примечание.

  • При использовании TargetKubernetesVersion канала необходимо указать --target-kubernetes-version параметр. Для других каналов (Rapid, Stable, NodeImage) этот параметр не поддерживается.

  • Флаг --long-term-support (LTS) доступен только при использовании TargetKubernetesVersion канала. Для других каналов этот флаг должен иметь значение False.

  • Целевую версию Kubernetes нельзя задать для будущей версии Kubernetes, пока не выпущенной AKS.

  • Вы можете выбрать только версии LTS Kubernetes (N-2) для профиля автоматического обновления, передав --long-term-support флаг. Для автоматического обновления систем в этом сценарии необходимо также убедиться, что кластеры в процессе обновления все поддерживают LTS. Кластеры, отличные от LTS, приводят к сбою запуска обновления при обнаружении первого кластера, отличного от LTS.

Автоматически обновлять кластеры участников до последнего патча версии Kubernetes 1.33.

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel TargetKubernetesVersion \
  --target-kubernetes-version "1.33"

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

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel TargetKubernetesVersion \
  --target-kubernetes-version "1.29" \
  --long-term-support

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

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

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

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 

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

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

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

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

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

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

Удалите профиль автообновления

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

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

Примечание.

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

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

  1. В портал Azure перейдите к ресурсу Azure Kubernetes Fleet Manager.

  2. В меню службы в разделе "Параметры выберите Обновление нескольких кластеров>Профили автоматического обновления.

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

  4. Выберите последовательность обновления: либо Этапы, либо Один за один.

    Снимок экрана: панель портала Azure диспетчера парка Azure Kubernetes для создания профиля автоматического обновления для обновления кластеров по стратегии.

  5. Выберите один из следующих параметров канала:

    • Стабильный — обновление кластеров, используя исправления для предпоследней доступной минорной версии Kubernetes.
    • Быстрое обновление кластеров с исправлениями для последней минорной версии Kubernetes (N).
    • Образ узла — обновите только версию образа узла.
    • Целевая минорная версия Kubernetes (предварительная версия) — обновление кластеров до последней версии патча указанной целевой минорной версии Kubernetes, когда доступен патч.

    Скриншот панели портала Azure менеджера флота Azure Kubernetes для создания профиля автоматического обновления, который определяет запуск обновления.

  6. Если выбрать канал Целевую минорную версию Kubernetes (предварительный просмотр), можно выбрать минорную версию Kubernetes для использования в качестве триггера:

    • Разрешить дополнительные версии LTS: позволяет выбирать дополнительные версии Kubernetes, доступные только для кластеров долгосрочной поддержки AKS (LTS).
    • Целевая дополнительная версия Kubernetes: выберите триггер дополнительных версий Kubernetes. Кластеры на более низкой минорной версии сначала получают эти обновления, а затем применяются только обновления исправлений.

    Скриншот панели портала Azure Kubernetes Fleet Manager для создания профиля автоматического обновления, определяющего, какую минорную версию Kubernetes использовать в качестве триггера.

    Примечание.

    Разрешение минорных версий LTS поддерживает выполнение обновлений только для всех кластеров с включенной поддержкой LTS. При обнаружении кластера, отличного от LTS, выполнение обновления завершается с ошибкой.

  7. Если выбрать канал Стабильный, Быстрый или Целевая минорная версия Kubernetes (предварительный просмотр), можно выбрать способ применения обновлений образа узла:

    • Последний образ. Обновляет каждый кластер AKS в профиле автоматического обновления до последнего доступного образа в соответствующем регионе Azure.
    • Согласованный образ: возможно автоматическое обновление, при котором кластеры AKS будут находиться в нескольких регионах Azure, где последние доступные образы узлов могут отличаться (дополнительные сведения см. в средстве отслеживания выпуска AKS). При выборе этого параметра автоматическое обновление выбирает последний общий образ во всех регионах Azure для обеспечения согласованности.

    Примечание.

    Канал образов узла всегда использует согласованный образ.

  8. Если выбрана последовательность обновлений с помощью этапов, выберите или создайте стратегию.

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

  9. Выберите "Создать", чтобы создать профиль автоматического обновления.

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

  1. В портал Azure перейдите к ресурсу Azure Kubernetes Fleet Manager.

  2. В меню службы в разделе "Параметры выберите Обновление нескольких кластеров>Профили автоматического обновления.

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

  3. Чтобы просмотреть ее конфигурацию, выберите нужный профиль автоматического обновления.

    Снимок экрана панели диспетчера флота Azure Kubernetes, портал Azure, показывает конфигурацию одного профиля автоматического обновления.

Удалите профиль автообновления

  1. В портал Azure перейдите к ресурсу Azure Kubernetes Fleet Manager.

  2. В меню службы в разделе "Параметры выберите Обновление нескольких кластеров>Профили автоматического обновления.

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

  3. Выберите нужный профиль в списке и нажмите кнопку "Удалить ", чтобы удалить профиль.

Примечание.

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

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

Автоматическое обновление происходит только при наличии новых образов 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}"

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

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

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

Автоматическое обновление позволяет создавать новый запуск обновления в любое время с помощью az fleet autoupgradeprofile generate-update-run команды. Результирующий запуск обновления основан на текущей версии Kubernetes, опубликованной AKS, или образе узла.

Дополнительные сведения о создании запуска обновления по запросу из профиля автоматического обновления см. в разделе "Создание запуска обновления" из профиля автоматического обновления.

Дальнейшие действия