Обновление платформы
В данном разделе представлены все шаги для корректного обновления
1. Предварительные условия
-
У вас есть доступ к кластеру с учетной записью, имеющей роль
cluster-adminв Kubernetes. -
У вас есть токен доступа к хранилищу секретов StarVault с привилегиями root.
-
Вы установили утилиту kubectl для работы с Kubernetes.
-
Вы установили утилиту nova-ctl для работы с платформой.
-
У вас есть доступ к узлам кластера по протоколу SSH с машины, где вы используете утилиты nova-ctl и kubectl.
-
Вы сохранили резервную копию хранилища Etcd на случай экстренного восстановления.
-
Все ваши приложения поддерживают новую версию Kubernetes (в случае мажорного обновления платформы).
-
Все ваши приложения запущены в достаточном количестве реплик и распределены по разным узлам платформы или временная недоступность ваших приложений допустима в рамках окна обновления.
-
Сервер управления Nova Universe обновлен, согласно разделу 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 -
• Проверьте, что все объекты реконсиляции 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 -
Проверьте, что в кластере Kubernetes отсутствуют сервисы в состоянии ошибки:
kubectl get pods -A | grep -vi "run\comp"Если вы обнаружили в кластере сбои в работе собственных или платформенных сервисов, то рекомендуется сначала устранить их, а затем выполнять обновление. В противном случае обновление кластера может завершиться с ошибкой.
2. Обновление
-
Загрузите образ 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 готов для установки платформы
-
-
Выполните команду для запуска контейнера с утилитой 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, а также ingressnova-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 -
Запустите процедуру обновления:
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... -
Дождитесь сообщения об успешном обновлении платформы.
■ Validating cluster nodes... done ■ Validating license... done ■ Preparing update... done ■ Updating cluster... done ■ Updating modules... done ■ Updating platform applications... done -
При необходимости проверьте состояние кластера Kubernetes после обновления, используя раздел Проверка платформы после установки.