Обновление кластера в открытом сетевом контуре
Перед обновлением платформы Nova Container Platform обратите внимание на рекомендации и предварительные условия, представленные в данном разделе.
1. Предварительные условия
-
Вы ознакомились с разделом Стадии и этапы обновления, а также с разделом Обновление в закрытом сетевом окружении.
-
У вас есть доступ к кластеру с учетной записью, имеющей роль
cluster-adminв Kubernetes. -
У вас есть токен доступа к хранилищу секретов StarVault с привилегиями
root. -
Вы установили утилиту
kubectlдля работы с Kubernetes. -
Вы установили утилиту
nova-ctlдля работы с платформой. -
У вас есть доступ к узлам кластера по протоколу SSH с машины, где вы используете утилиты
nova-ctlиkubectl. -
Вы сохранили резервную копию хранилища Etcd на случай экстренного восстановления.
-
Вы убедились, что все ваши приложения поддерживают новую версию Kubernetes (в случае мажорного обновления платформы).
-
Вы убедились, что все ваши приложения запущены в достаточном количестве реплик и распределены по разным узлам платформы или временная недоступность ваших приложений допустима в рамках окна обновления.
-
Вы обновили сервер управления Nova Universe, если выполнялась офлайн-установка платформы.
-
Перед выполнением обновления кластера Nova до версии v7.6.0 с установленным кластером Longhorn, необходимо проверить его готовность по следующим пунктам:
-
Состояние кластера Longhorn.
-
Все тома (Volumes) находятся в статусе Healthy, Detached.
-
Нет реплик в статусах Degraded, Rebuilding или Failed.
-
Не выполняются операции restore, rebuild, replica scheduling.
-
Достаточно свободного места на дисках для возможного перемещения или восстановления реплик.
-
Нет нод в обслуживании или с отключенными дисками.
-
-
Состояние Kubernetes-кластера.
Компоненты Longhorn (manager, engine, csi) работают без ошибок.
-
Состояние данных и резервных копий.
-
Для всех критичных томов выполнены актуальные backup’ы.
-
BackupTarget доступен и находится в состоянии Ready.
-
Нет активных задач snapshot purge или backup.
-
-
Активность рабочих нагрузок.
-
На время обновления рекомендовано приостановить деплои приложений.
-
Отсутствуют операции, которые резко увеличивают нагрузку на хранилище.
-
-
-
Проверьте, что все узлы платформы находятся в состоянии
Ready:kubectl get nodes NAME STATUS ROLES AGE VERSION node-master-lm0jxax0.nova-zig4kntx30g3.local Ready control-plane 115d v1.26.8 node-worker-1ig440y8.nova-zig4kntx30g3.local Ready infra 115d v1.26.8 node-worker-paknej6b.nova-zig4kntx30g3.local Ready ingress,worker 115d v1.26.8 -
Проверьте, что все объекты реконсиляции Cluster Kustomizations находятся в состоянии
Ready:Пример проверки объектов реконсиляции Cluster Kustomizations
kubectl get ks -l kustomization.nova-platform.io/cluster=true -A NAMESPACE NAME AGE READY STATUS nova-gitops nova-release-cadvisor-main 23m True Applied revision: v2.3.1@sha1:1621385e63a481153346cb1fdde5116193decc61 nova-gitops nova-release-cert-manager-main 23m True Applied revision: v2.3.1@sha1:1621385e63a481153346cb1fdde5116193decc61 nova-gitops nova-release-cert-manager-post 23m True Applied revision: v2.3.1@sha1:1621385e63a481153346cb1fdde5116193decc61 nova-gitops nova-release-cilium-hubble 23m True Applied revision: v2.3.1@sha1:1621385e63a481153346cb1fdde5116193decc61 nova-gitops nova-release-cluster-crds 23m True Applied revision: v2.3.1@sha1:1621385e63a481153346cb1fdde5116193decc61 nova-gitops nova-release-console-main 23m True Applied revision: v2.3.1@sha1:1621385e63a481153346cb1fdde5116193decc61 nova-gitops nova-release-csi-local-main 23m True Applied revision: v2.3.1@sha1:1621385e63a481153346cb1fdde5116193decc61 nova-gitops nova-release-descheduler-main 23m True Applied revision: v2.3.1@sha1:1621385e63a481153346cb1fdde5116193decc61 nova-gitops nova-release-git-main 23m True Applied revision: v2.3.1@sha1:1621385e63a481153346cb1fdde5116193decc61 nova-gitops nova-release-grafana-main 23m True Applied revision: v2.3.1@sha1:1621385e63a481153346cb1fdde5116193decc61 nova-gitops nova-release-ingress-internal-main 23m True Applied revision: v2.3.1@sha1:1621385e63a481153346cb1fdde5116193decc61 nova-gitops nova-release-ingress-public-main 23m True Applied revision: v2.3.1@sha1:1621385e63a481153346cb1fdde5116193decc61 nova-gitops nova-release-logging-operator-main 23m True Applied revision: v2.3.1@sha1:1621385e63a481153346cb1fdde5116193decc61 nova-gitops nova-release-metrics-server-main 23m True Applied revision: v2.3.1@sha1:1621385e63a481153346cb1fdde5116193decc61 nova-gitops nova-release-prometheus-adapter-main 23m True Applied revision: v2.3.1@sha1:1621385e63a481153346cb1fdde5116193decc61 nova-gitops nova-release-prometheus-pre 23m True Applied revision: v2.3.1@sha1:1621385e63a481153346cb1fdde5116193decc61 nova-gitops nova-release-reflector-main 23m True Applied revision: v2.3.1@sha1:1621385e63a481153346cb1fdde5116193decc61 nova-gitops nova-release-reloader-main 23m True Applied revision: v2.3.1@sha1:1621385e63a481153346cb1fdde5116193decc61 nova-gitops nova-release-vpa-main 23m True Applied revision: v2.3.1@sha1:1621385e63a481153346cb1fdde5116193decc61 -
Проверьте, что в кластере Kubernetes отсутствуют сервисы в состоянии ошибки:
kubectl get pods -A | grep -vi "run\comp"
|
Начиная с версий Nova 6.5.0 и 7.4.0 служба multipathd на всех узлах платформы отключена. Это сделано для устранения конфликта между multipathd и системой хранения Longhorn. Если в вашей инфраструктуре используются сценарии работы с multipathd, не связанные с платформой и Longhorn, которые необходимо сохранить, пожалуйста, обратитесь в службу технической поддержки. Мы рассмотрим возможность предоставления исключений или альтернативных решений для ваших кейсов. |
|
Если вы обнаружили в кластере сбои в работе собственных или платформенных сервисов, то рекомендуется сначала устранить их, а затем выполнять обновление. В противном случае обновление кластера может завершиться с ошибкой. |
2. Обновление Nova Container Platform c помощью CLI
Вы можете получить информацию о новых релизах Nova Container Platform в разделе Заметки к релизу.
|
В рамках перехода на новую версию платформы компоненты Nova (Neuvector, Velero, OpenSearch) переводятся под управление операторов. Это архитектурное изменение затрагивает способ применения Flux-кастомизаций для данных компонентов. |
Перед обновлением рекомендуется сохранить текущее состояние всех кастомизаций.
Это важный шаг, поскольку если в ваших кастомизациях для компонентов OpenSearch, Neuvector или Data Protection (Velero) присутствуют дополнительные патчи — после обновления они не будут применены автоматически. Резервная копия позволит точно восстановить необходимые изменения в новой конфигурации без риска потери данных.
Для сохранения выполните команду:
kubectl get kustomization -A -o yaml > backup-kustomizations.yaml
Файл backup-kustomizations.yaml будет создан в текущей директории.
3. Процедура обновления
-
Запустите процедуру обновления кластера с помощью
nova-ctl:nova-ctl cluster update --version 7.6.0 \ --ssh-user <имя_пользователя> \ --ssh-key <закрытый ключ SSH> \ --starvault-root-token <токен доступа к StarVault>Пример
nova-ctl cluster update --version 7.6.0 \ --ssh-user nova-installer \ --ssh-key id_rsa.pem \ --starvault-root-token hvs.cYWWUFTWzBlESPhLRR9r672wВ процессе обновления платформы вы можете дополнительно обновить системные TLS-сертификаты Kubernetes. Для этого дополнительно укажите ключ
.nova-ctl cluster update --renew-certs -
Подтвердите обновление платформы:
Are you sure you want to update the cluster? (yes/no) [no] yes -
Процедура обновления запущена. Во время ее выполнения вам необходимо подтверждать последовательное обновление каждого узла кластера.
После обновления каждого storage-узла убедитесь, что Longhorn работает корректно, прежде чем переходить к следующему узлу:
-
Компоненты Longhorn на узле запущены:
-
longhorn-manager на узле в статусе Running;
-
instance-manager (engine / replica) в статусе Running.
-
-
Тома (Volumes) не деградировали:
-
нет томов (Volumes) в статусах Degraded, Rebuilding, Faulted;
-
все реплики томов доступны и в состоянии Healthy.
-
-
Узел Longhorn находится в состоянии Ready.
-
Нагрузки на PV работают корректно:
-
приложения, используемые PV читают/пишут без ошибок;
-
нет таймаутов и IO-проблем.
-
Пример
■ Validating cluster nodes... done ■ Validating license... done ■ Preparing update... done ☕️ 4/7: Updating cluster... Press enter to start updating node 10.0.0.20 ■ Validating cluster nodes... done ■ Validating license... done ■ Preparing update... done ☕️ 4/7: Updating cluster... ■ Updating node 10.0.0.20... done ■ Updating node 10.0.0.21... done ■ Updating node 10.0.0.22... done ■ Updating node 10.0.0.23... done ■ Updating node 10.0.0.25... -
-
Дождитесь сообщения об успешном обновлении платформы.
Пример
■ Validating cluster nodes... done ■ Validating license... done ■ Preparing update... done ■ Updating cluster... done ■ Updating modules... done ■ Updating platform applications... done -
При необходимости проверьте состояние кластера Kubernetes после обновления, используя раздел Проверка платформы после установки.