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

Обновление кластера в открытом сетевом контуре

Перед обновлением платформы Nova Container Platform обратите внимание на рекомендации и предварительные условия, представленные в данном разделе.

1. Предварительные условия

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

  • У вас есть доступ к кластеру с учетной записью, имеющей роль cluster-admin в Kubernetes.

  • У вас есть токен доступа к хранилищу секретов StarVault с привилегиями root.

  • Вы установили утилиту kubectl для работы с Kubernetes.

  • Вы установили утилиту nova-ctl для работы с платформой.

  • У вас есть доступ к узлам кластера по протоколу SSH с машины, где вы используете утилиты nova-ctl и kubectl.

  • Вы сохранили резервную копию хранилища Etcd на случай экстренного восстановления.

  • Вы убедились, что все ваши приложения поддерживают новую версию Kubernetes (в случае мажорного обновления платформы).

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

  • Вы обновили сервер управления Nova Universe, если выполнялась офлайн-установка платформы.

  • Перед выполнением обновления кластера Nova до версии v7.5.0 с установленным кластером Longhorn, необходимо проверить его готовность по следующим пунктам:

    1. Состояние кластера Longhorn.

      • Все тома (Volumes) находятся в статусе Healthy, Detached.

      • Нет реплик в статусах Degraded, Rebuilding или Failed.

      • Не выполняются операции restore, rebuild, replica scheduling.

      • Достаточно свободного места на дисках для возможного перемещения или восстановления реплик.

      • Нет нод в обслуживании или с отключенными дисками.

    2. Состояние Kubernetes-кластера.

      Компоненты Longhorn (manager, engine, csi) работают без ошибок.

    3. Состояние данных и резервных копий.

      • Для всех критичных томов выполнены актуальные backup’ы.

      • BackupTarget доступен и находится в состоянии Ready.

      • Нет активных задач snapshot purge или backup.

    4. Активность рабочих нагрузок.

      • На время обновления рекомендовано приостановить деплои приложений.

      • Отсутствуют операции, которые резко увеличивают нагрузку на хранилище.

  • Проверьте, что все узлы платформы находятся в состоянии 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 в разделе Заметки к релизу.

2.1. Проверка версии платформы

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

kubectl get clusterversions version

Пример

$ kubectl get clusterversions version

NAME      VERSION   AGE
version   v7.5.0    12m

Перейдите к обновлению платформы, если ваша версия устарела.

3. Процедура обновления

  1. Запустите процедуру обновления кластера с помощью nova-ctl:

    nova-ctl cluster update --version 7.4.0 \
      --ssh-user <имя_пользователя> \
      --ssh-key <закрытый ключ SSH> \
      --starvault-root-token <токен доступа к StarVault>

    Пример

    nova-ctl cluster update --version 7.4.0 \
      --ssh-user nova-installer \
      --ssh-key id_rsa.pem \
      --starvault-root-token hvs.cYWWUFTWzBlESPhLRR9r672w

    В процессе обновления платформы вы можете дополнительно обновить системные TLS-сертификаты Kubernetes. Для этого дополнительно укажите ключ nova-ctl cluster update --renew-certs.

  2. Подтвердите обновление платформы:

    Are you sure you want to update the cluster? (yes/no) [no] yes
  3. Процедура обновления запущена. Во время ее выполнения вам необходимо подтверждать последовательное обновление каждого узла кластера.

    После обновления каждого storage-узла убедитесь, что Longhorn работает корректно, прежде чем переходить к следующему узлу:

    1. Компоненты Longhorn на узле запущены:

      • longhorn-manager на узле в статусе Running;

      • instance-manager (engine / replica) в статусе Running.

    2. Тома (Volumes) не деградировали:

      • нет томов (Volumes) в статусах Degraded, Rebuilding, Faulted;

      • все реплики томов доступны и в состоянии Healthy.

    3. Узел Longhorn находится в состоянии Ready.

    4. Нагрузки на 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...
  4. Дождитесь сообщения об успешном обновлении платформы.

    Пример

    ■ Validating cluster nodes... done
    ■ Validating license... done
    ■ Preparing update... done
    ■ Updating cluster... done
    ■ Updating modules... done
    ■ Updating platform applications... done
  5. При необходимости проверьте состояние кластера Kubernetes после обновления, используя раздел Проверка платформы после установки.