Обновление глобального кластера

состоит из глобального кластера и одного или нескольких кластеров рабочих нагрузок. Глобальный кластер обязательно должен быть обновлён перед любыми кластерами рабочих нагрузок.

В этом документе описана процедура обновления глобального кластера.

Если глобальный кластер настроен с решением global DR (Disaster Recovery), строго следуйте процедуре global DR. В противном случае следуйте Стандартной процедуре.

Содержание

Стандартная процедура

Загрузка образов

Скопируйте основной пакет на любой узел управляющей плоскости глобального кластера. Распакуйте пакет и перейдите в распакованную директорию.

  • Если глобальный кластер использует встроенный реестр, выполните:

    bash upgrade.sh --only-sync-image=true
  • Если глобальный кластер использует внешний реестр, необходимо также указать адрес реестра:

    bash upgrade.sh --only-sync-image=true --registry <registry-address> --username <username> --password <password>

Если вы планируете обновлять Operator и Cluster Plugin вместе с обновлением глобального кластера, вы можете заранее загрузить их образы в реестр глобального кластера. Инструкции по массовой загрузке см. в разделе Push only images from all packages in a directory.

При использовании violet push на стендбай глобальном кластере необходимо указать параметр --dest-repo с VIP стендбай кластера. Подробнее см. в разделе Upload Packages in a Global DR Environment.

INFO

Загрузка образов обычно занимает около 2 часов, в зависимости от вашей сети и производительности диска.

Если ваша платформа настроена для глобального аварийного восстановления (DR), помните, что стендбай глобальному кластеру также требуется загрузка образов. Планируйте окно обслуживания с учётом этого.

Запуск обновления

После завершения загрузки образов выполните следующую команду для запуска процесса обновления:

bash upgrade.sh --skip-sync-image

Дождитесь завершения скрипта перед продолжением.

Если вы заранее загрузили образы Operator и Cluster Plugin в реестр глобального кластера, затем можете выполнить Create only CRs from all packages in a directory. После выполнения команды подождите около 10–15 минут, пока появятся уведомления об обновлении функциональных компонентов. После этого вы сможете обновить Operator и Cluster Plugin вместе в рамках последующих шагов обновления.

Обновление глобального кластера

WARNING

Если на платформе установлены Data Services, при обновлении кластеров необходимо также обновлять соответствующие расширения.
Подробнее см. в разделе Upgrade Data Services.

  1. Войдите в Web Console глобального кластера и переключитесь в режим Administrator.
  2. Перейдите в раздел Clusters > Clusters.
  3. Нажмите на кластер global, чтобы открыть его подробный просмотр.
  4. Перейдите на вкладку Functional Components.
  5. Нажмите кнопку Upgrade.

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

WARNING

Если на платформе установлены Data Services, при обновлении кластеров необходимо также обновлять соответствующие расширения. Подробнее см. в разделе Upgrade Data Services.

  1. Войдите в Web Console глобального кластера и переключитесь в режим Administrator.
  2. Перейдите в раздел Clusters > Clusters.
  3. Нажмите на кластер global, чтобы открыть его подробный просмотр.
  4. Перейдите на вкладку Functional Components.
  5. Нажмите кнопку Upgrade.

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

INFO
  • Обновление версии Kubernetes является необязательным. Однако, поскольку возможны перебои в работе сервисов, рекомендуется включить обновление Kubernetes, чтобы избежать нескольких окон обслуживания.

  • Если в глобальном кластере установлен Alauda Container Platform GitOps, и после обновления плагины работают некорректно, обратитесь к разделу Upgrading Alauda Container Platform GitOps.

Установка плагина Product Docs

INFO

Плагин Alauda Container Platform Product Docs предоставляет доступ к документации продукта внутри платформы. Все ссылки на помощь в платформе будут вести к этой документации. Если плагин не установлен, при нажатии на ссылки помощи в платформе будет возникать ошибка 404.

Начиная с версии ACP 4.0, встроенная документация продукта выделена в отдельный плагин Alauda Container Platform Product Docs. Если вы обновляетесь с версии 3.18, необходимо установить этот плагин, выполнив следующие шаги:

  1. Перейдите в раздел Administrator.

  2. В левой боковой панели выберите Marketplace > Cluster Plugins и выберите кластер global.

  3. Найдите плагин Alauda Container Platform Product Docs и нажмите Install.

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

Процедура global DR

Проверка согласованности данных

Следуйте вашим стандартным процедурам проверки global DR, чтобы убедиться, что данные в стендбай глобальном кластере совпадают с данными в основном глобальном кластере.

Если обнаружены несоответствия, свяжитесь с технической поддержкой перед продолжением.

На обоих кластерах выполните следующую команду, чтобы убедиться, что нет Machine узлов в состоянии, отличном от работающего:

kubectl get machines.platform.tkestack.io

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

Удаление плагина синхронизации etcd

Обновление с версии 3.18
  1. Зайдите в Web Console основного кластера по его IP или VIP.
  2. Переключитесь в режим Administrator.
  3. Перейдите в Catalog > Cluster Plugin.
  4. Выберите global в выпадающем списке кластеров.
  5. Найдите плагин EtcdSync и нажмите Uninstall. Дождитесь завершения удаления.

Загрузка образов

Выполните шаг Загрузка образов на обоих кластерах — стендбай и основном.

Подробности см. в разделе Загрузка образов в Стандартной процедуре.

Обновление стендбай кластера

INFO

Для выполнения обновления требуется доступ к Web Console стендбай кластера.

Перед началом убедитесь, что ресурс ProductBase стендбай кластера корректно настроен с VIP кластера в поле spec.alternativeURLs.

Если нет, обновите конфигурацию следующим образом:

apiVersion: product.alauda.io/v1alpha2
kind: ProductBase
metadata:
  name: base
spec:
  alternativeURLs:
    - https://<standby-cluster-vip>

На стендбай кластере выполните шаги из Стандартной процедуры для завершения обновления.

Обновление основного кластера

После обновления стендбай кластера продолжите выполнение Стандартной процедуры на основном кластере.

Переустановка плагина синхронизации etcd

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

Для переустановки:

  1. Зайдите в Web Console стендбай глобального кластера по его IP или VIP.
  2. Переключитесь в режим Administrator.
  3. Перейдите в Marketplace > Cluster Plugins.
  4. Выберите кластер global.
  5. Найдите Alauda Container Platform etcd Synchronizer, нажмите Install и укажите необходимые параметры.

Для проверки установки выполните:

kubectl get po -n cpaas-system -l app=etcd-sync  # Убедитесь, что pod в состоянии 1/1 Running

kubectl logs -n cpaas-system $(kubectl get po -n cpaas-system -l app=etcd-sync --no-headers | awk '{print $1}' | head -1) | grep -i "Start Sync update"
# Дождитесь появления в логах строки "Start Sync update"

# Пересоздайте pod, чтобы инициировать синхронизацию ресурсов с ownerReferences
kubectl delete po -n cpaas-system $(kubectl get po -n cpaas-system -l app=etcd-sync --no-headers | awk '{print $1}' | head -1)

Проверка статуса синхронизации

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

curl "$(kubectl get svc -n cpaas-system etcd-sync-monitor -ojsonpath='{.spec.clusterIP}')/check"

Объяснение вывода:

  • "LOCAL ETCD missed keys:" – Ключи есть в основном кластере, но отсутствуют в стендбай. Обычно устраняется после перезапуска pod.
  • "LOCAL ETCD surplus keys:" – Ключи есть в стендбай кластере, но отсутствуют в основном. Перед удалением проконсультируйтесь с вашей операционной командой.