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

Обновление платформы

В данном разделе представлены все шаги для корректного обновления

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

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

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

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

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

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

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

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

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

  • Сервер управления Nova Universe обновлен, согласно разделу 1.1.

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

  1. Проверьте, что все узлы платформы находятся в состоянии Ready:

    kubectl get nodes
    Пример вывода:
    NAME                STATUS  		 ROLES           	 AGE    VERSION
    
    infra.aps.local    	 Ready    		 infra            		 10m   v1.29.8
    master.aps.local   	 Ready   		 control-plane    	 10m   v1.29.8
    worker.aps.local  	 Ready   		 ingress,worker  	 10m   v1.29.8
  2. • Проверьте, что все объекты реконсиляции Cluster Kustomizations находятся в состоянии Ready:

    kubectl get ks -l kustomization.nova-platform.io/cluster=true -A
    Пример вывода:
    NAMESPACE     NAME                                          AGE   READY   STATUS
    nova-gitops   nova-release-cadvisor-main                    	11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-cert-manager-main                	11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-cert-manager-post               	11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-cluster-crds                    		11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-console-main                   		11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-console-post                    		11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-csi-local-main                  	11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-csi-snapshot-main             	11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-csi-snapshot-pre                	11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-descheduler-main               	11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-git-main                         		11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-grafana-main                    	11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-grafana-post                    		11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-ingress-internal-main          	11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-ingress-internal-post            	11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-ingress-internal-pre             	11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-ingress-public-main            	11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-ingress-public-pre             	11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-logging-operator-main        	11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-metrics-server-main           	11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-prometheus-adapter-main    	11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-prometheus-main                	11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-prometheus-post                	11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-prometheus-pre                   	11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-reflector-main                  	11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-reloader-main                   	11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-vpa-main                         		11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
    nova-gitops   nova-release-x509-certificate-exporter-main   11m   True    Applied revision: v1.0.0@sha1:09c13382014d3c08d9886bff17290b79d82db5a1
  3. Проверьте, что в кластере Kubernetes отсутствуют сервисы в состоянии ошибки:

    kubectl get pods -A | grep -vi "run\comp"

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

2. Обновление

  1. Загрузите образ nova-ctl v1.0.0:

    docker pull hub.universe.nova.local/nova-universe/nova/nova-ctl:v1.0.0

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

    • Подготовлены все узлы платформы

    • Разрешено сетевое взаимодействие

    • Nova Universe установлен и работает корректно

    • Узел nova-ctl готов для установки платформы

  2. Выполните команду для запуска контейнера с утилитой nova-ctl:

    docker run --rm -it -v $PWD:/opt/nova hub.universe.nova.local/nova-universe/nova/nova-ctl:v1.0.0

    Переменная $PWD определяет текущую рабочую директорию, в которой находятся SSH-ключи.

    При запуске контейнера с утилитой nova-ctl, данная директория будет доступна контейнеру для записи файла установки и артефактов результата установки платформы Nova Container Platform Special Edition.

    Убедитесь, что контейнер разрешает DNS-зону universe.nova.local, а также ingress nova-release-git-main. Пример содержимого файла /etc/hosts:

    172.31.0.145 nova-release-git-main.aps.local
    172.31.0.123 hub.universe.nova.local repo.universe.nova.local universe.nova.local sun.universe.nova.local status.universe.nova.local uploads.universe.nova.local
  3. Запустите процедуру обновления:

    nova-ctl cluster update --version v1.0.0 --ssh-user=nova-user --ssh-key=ssh-key.pem --starvault-root-token=hvs.IagMxCNVhn5kQUuvGrQL5SlH

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

    Are you sure you want to update the cluster? (yes/no) [no] yes

    Процедура обновления запущена. Во время ее выполнения вам необходимо подтверждать последовательное обновление каждого узла кластера.

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