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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2. Обновление Nova Container Platform c помощью CLI

Вы можете получить информацию о новых релизах Nova Container Platform в разделе Заметки к релизу.

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

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

kubectl get clusterversions version

Пример

$ kubectl get clusterversions version

NAME      VERSION   AGE
version   v6.4.0    12m

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

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

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

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

    Пример

    nova-ctl cluster update --version 6.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. Процедура обновления запущена. Во время ее выполнения вам необходимо подтверждать последовательное обновление каждого узла кластера.

    Пример

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