• Русский
  • Обновите глобальный кластер

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

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

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

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

    WARNING

    Если вы выполняете обновление с 3.16.x или 3.18.x и у вас установлены Application Services, см. руководство по обновлению Application Services для выполнения дополнительных шагов, которые необходимо выполнить перед обновлением глобального кластера.

    Загрузите образы

    Скопируйте core package на любой узел control plane глобального кластера. Распакуйте пакет и выполните cd в распакованный каталог.

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

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

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

    Если вы планируете обновлять Operator и Cluster Plugin вместе при обновлении глобального кластера, вы можете заранее загрузить их образы в registry глобального кластера. Инструкции по массовой загрузке см. в разделе Загрузка только образов из всех пакетов в каталоге.

    INFO

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

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

    WARNING

    При использовании violet для загрузки пакетов в резервный кластер параметр --dest-repo <VIP addr of standby cluster> должен быть указан.
    В противном случае пакеты будут загружены в image repository основного кластера, что не позволит резервному кластеру устанавливать или обновлять расширения.

    Также учтите, что необходимо предоставить либо данные аутентификации image registry резервного кластера, либо параметр --no-auth.

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

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

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

    bash upgrade.sh --skip-sync-image

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

    Если вы уже заранее загрузили образы Operator и Cluster Plugin в registry глобального кластера, затем вы можете выполнить Создание только CR из всех пакетов в каталоге. После выполнения этой команды подождите около 10–15 минут, пока для функциональных компонентов не появятся уведомления об обновлении. После этого вы сможете обновить Operator и Cluster Plugin вместе в рамках последующих шагов обновления.

    WARNING

    При обновлении глобального кластера не используйте параметр --clusters для создания CR в рабочих кластерах на шаге Создание только CR из всех пакетов в каталоге.

    Это может привести к ошибкам обновления при последующих обновлениях рабочих кластеров.

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

    WARNING

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

    Дополнительные сведения см. в разделе Обновление Data Services.

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

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

    INFO
    • Обновление версии Kubernetes необязательно. Однако, поскольку перебои в работе сервиса могут возникнуть в любом случае, мы рекомендуем включить обновление Kubernetes, чтобы избежать нескольких окон обслуживания.
    • Если в глобальном кластере установлен плагин Alauda Container Platform GitOps и после обновления его pod'ы работают некорректно, см. Обновление Alauda Container Platform GitOps.

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

    INFO

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

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

    1. Перейдите в Administrator.

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

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

    (При необходимости) Установите Service Mesh Essentials

    Если установлен Service Mesh v1, перед обновлением рабочих кластеров ознакомьтесь с документацией Alauda Service Mesh Essentials Cluster Plugin.

    После обновления

    Процедура global DR

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

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

    Если обнаружены несоответствия, не удаляйте плагин синхронизации etcd на следующем шаге и обратитесь в техническую поддержку перед продолжением. Удаление плагина, когда в резервном глобальном кластере отсутствуют данные, которые есть в основном, может привести к некорректному разрешению owner references, а объекты Machine узлов рабочих кластеров — включая кластеры immutable-OS, где это приводит к уничтожению базовой виртуальной машины — могут быть удалены.

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

    kubectl get machines.platform.tkestack.io

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

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

    Обновление с 3.16
    Обновление с 3.18
    Обновление с 4.0

    Войдите на любой узел control plane основного глобального кластера, затем выполните:

    helm3 del etcd-sync -n default 2> /dev/null
    helm3 del etcd-sync -n cpaas-system 2> /dev/null
    
    kubectl delete configmaps,secret -n kube-system   etcd-master-mirror-cert etcd-slave-mirror-cert etcd-sync-env   etcd-sync-ignore-text &> /dev/null
    
    kubectl delete deploy -n kube-system etcd-mirror-etcd-mirror &> /dev/  null
    
    kubectl get pod -n kube-system | grep etcd-mirror  # Ensure no   etcd-mirror pods remain

    Загрузите образы

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

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

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

    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 глобального кластера на их узлы control plane.

    Чтобы переустановить плагин:

    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  # Ensure pod is 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"
    # Wait until the logs contain "Start Sync update"
    
    # Recreate the pod to trigger synchronization of resources with 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:" – ключи существуют в резервном кластере, но отсутствуют в основном. Перед удалением обсудите их с вашей командой эксплуатации.