Обновление оркестрации между несколькими кластерами-членами

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

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

  • Запуск обновления: запуск обновления представляет собой обновление, которое применяется к коллекции кластеров AKS, состоящей из цели обновления и последовательности. Цель обновления описывает необходимые обновления (например, обновление до Kubernetes версии 1.28.3). Последовательность обновлений описывает точный порядок применения обновлений к нескольким кластерам членов, выраженным с помощью этапов и групп. Если не указано, все кластеры-члены обновляются по одному последовательно. Запуск обновления можно остановить и запустить.
  • Этап обновления: запуски обновления делятся на этапы, которые применяются последовательно. Например, первый этап обновления может обновлять кластеры участников тестовой среды, а второй этап обновления будет позже обновлять кластеры членов рабочей среды. Время ожидания можно указать для задержки между приложением последующих этапов обновления.
  • Группа обновлений: каждый этап обновления содержит одну или несколько групп обновлений, которые используются для выбора кластеров-членов, которые необходимо обновить. Группы обновлений также используются для упорядочивания приложения обновлений в кластерах-членах. На этапе обновления обновления обновления применяются ко всем разным группам обновлений параллельно; в группе обновлений кластеры-члены обновляются последовательно. Каждый кластер членов парка может быть частью одной группы обновлений.
  • Стратегия обновления: стратегия обновления описывает последовательность обновлений с этапами и группами. Вы можете повторно использовать стратегию в запусках обновления, а не определять последовательность многократно в каждом запуске.

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

  • Обновите версии Kubernetes для плоскости управления Kubernetes и узлов (включая обновление образов узлов).
  • Обновите только образы узлов.

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

  • Latest: используйте последние образы узлов, доступные в регионе кластера при запуске обновления кластера. В результате различные версии образов могут использоваться в зависимости от региона, в котором находится кластер и когда его обновление начинается.
  • Consistent: при запуске обновления выбирает последние распространенные версии образов в регионах кластеров-членов в этом запуске, таким образом, те же, согласованные версии образов используются в кластерах.

Вы должны Latest использовать более свежие версии образа и свести к минимуму риски безопасности и Consistent повысить надежность с помощью и проверить эти образы в кластерах на более ранних этапах, прежде чем использовать их в последующих кластерах.

Плановое техническое обслуживание

Обновление выполняется с учетом запланированных периодов обслуживания, установленных на уровне кластера Служба Azure Kubernetes (AKS).

В ходе выполнения обновления (как для одного по одному, так и для одного или этапов обновления обновлений) обновление определяет приоритеты обновления кластеров в следующем порядке:

  1. Участник с открытым периодом текущего обслуживания.
  2. Член с периодом обслуживания, открывающимся в ближайшие четыре часа.
  3. Член без периода обслуживания.
  4. Член с закрытым периодом обслуживания.

Обновление состояний выполнения

Запуск обновления может находиться в одном из следующих состояний:

  • NotStarted: состояние запуска обновления перед его запуском.

  • Выполняется: обновление выполняется по крайней мере для одного из кластеров в запуске обновления.

  • Ожидание.

    • Кластер-член: кластер-член может находиться в состоянии ожидания по любым из следующих причин и отображается в поле сообщения.
      • Период обслуживания не открыт. Сообщение указывает на следующее время открытия.
      • Целевая версия Kubernetes пока недоступна в регионе члена. Ссылки на средство отслеживания выпуска, чтобы можно было проверка состояние выпуска в разных регионах.
      • Версия образа целевого узла пока недоступна в регионе члена. Ссылки на средство отслеживания выпуска, чтобы можно было проверка состояние выпуска в разных регионах.
    • Группа: группа находится в состоянии, если все члены в группах находятся в PendingPending состоянии или не запущены. При переходе Pendingк члену запуск обновления попытается обновить следующий член в группе. Если все члены находятся в состоянии, группа переходит в PendingPending состояние. Перед переходом на следующий этап все группы должны находиться в состоянии терминала. То есть, если группа находится в Pending состоянии, обновление ожидает завершения, прежде чем перейти к следующему этапу выполнения.
    • Этап: этап находится в Pending том случае, если все группы под этим этапом находятся в Pending состоянии или не запущены.
    • Запуск: запуск находится в Pending состоянии, если текущий этап, который должен выполняться в Pending состоянии.
  • Пропущено: все уровни запуска обновления могут быть пропущены, и это может быть вызвано системой или пользователем.

    • Член:
      • Вы пропустили обновление для члена или одного из его родителей.
      • Кластер-член уже находится в целевой версии Kubernetes (если режим выполнения обновления имеет Full или ControlPlaneOnly).
      • Кластер-член уже находится в целевой версии Kubernetes, а все пулы узлов находятся в версии образа целевого узла.
      • Если для запуска обновления выбран согласованный образ узла, если не удается найти целевую версию образа для одного из пулов узлов, обновление пропускается для этого кластера. Примером этого является добавление нового пула узлов с новым номером SKU виртуальной машины после запуска обновления.
    • Группа:
      • Все кластеры-члены были обнаружены Skipped системой.
      • Вы инициировали пропуск на уровне группы.
    • Этап:
      • Все группы на этапе были обнаружены Skipped системой.
      • Вы инициировали пропуск на уровне этапа.
    • Выполните следующую команду:
      • Все этапы были обнаружены Skipped системой.
  • Остановлено: все уровни запуска обновления можно остановить. Существует два способа ввода остановленного состояния:

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

    • Помечает MemberUpdateStatus как Failed в кластере-члене.
    • Помечает всех родителей (этап —> этап> выполнения) как Failed с сообщением об ошибке сводки.
    • Останавливает выполнение обновления от дальнейшего выполнения.

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