Обновление версии Kubernetes
Каждая версия Nova Container Platform поддерживает несколько версий Kubernetes. Вы можете обновить версию Kubernetes в кластере, не меняя версию платформы. Подробнее о модели версий см. в разделе Версии платформы и Kubernetes.
Обновление версии Kubernetes выполняется той же командой nova-ctl cluster update, что и обновление платформы, и проходит те же стадии и этапы. Продолжительность обновления определяется теми же факторами, что и при обновлении платформы, в первую очередь количеством узлов в кластере. Подробнее см. в разделе Обновление платформы.
1. Правила обновления
-
Версию Kubernetes можно выбрать только из версий, которые поддерживает текущая версия платформы. В версии 10.0.0 поддерживаются версии Kubernetes 1.32, 1.33 и 1.34.
-
За одно обновление минорная версия Kubernetes повышается ровно на единицу. Мажорная версия Kubernetes не меняется. Например, чтобы перейти с версии 1.32 на версию 1.34, выполните два обновления: 1.32 → 1.33 и 1.33 → 1.34.
-
Патч-версию Kubernetes выбирает платформа.
2. Предварительные условия
-
У вас есть доступ к кластеру с учетной записью, имеющей роль
cluster-adminв Kubernetes. -
У вас есть токен доступа к хранилищу секретов StarVault с привилегиями
root. -
Вы установили утилиту
kubectlдля работы с Kubernetes. -
Вы установили утилиту
nova-ctlтой же версии, что и версия платформы в кластере. -
У вас есть доступ к узлам кластера по протоколу SSH с машины, где вы используете утилиты
nova-ctlиkubectl. -
Вы сохранили резервную копию хранилища Etcd на случай экстренного восстановления.
-
Вы убедились, что все ваши приложения поддерживают новую версию Kubernetes.
-
Вы убедились, что все ваши приложения запущены в достаточном количестве реплик и распределены по разным узлам платформы или временная недоступность ваших приложений допустима в рамках окна обновления.
-
Все узлы платформы находятся в состоянии
Ready, а в кластере отсутствуют сервисы в состоянии ошибки.
3. Обновление с помощью CLI
-
Проверьте текущие версии платформы и Kubernetes:
$ kubectl get clusterversions version NAME VERSION K8SRELEASE AGE version v10.0.0 1.32 30d -
Запустите обновление. В параметре
--versionукажите текущую версию платформы, в параметре--k8s-release— версию Kubernetes, которая на одну минорную версию больше текущей. Оба параметра обязательны.nova-ctl cluster update --version <текущая версия платформы> \ --k8s-release <версия Kubernetes> \ --ssh-user <имя_пользователя> \ --ssh-key <закрытый ключ SSH> \ --starvault-root-token <токен доступа к StarVault>Пример$ nova-ctl cluster update --version 10.0.0 --k8s-release 1.33 \ --ssh-user nova-installer --ssh-key id_rsa.pem \ --starvault-root-token <токен>Описание остальных параметров команды приведено в разделе Процедура обновления.
Если указать версию Kubernetes, которая больше текущей более чем на одну минорную версию (например,
--k8s-release 1.34при текущей версии 1.32),nova-ctlзавершит работу с ошибкой:Kubernetes release version must be exactly one minor version greater than current -
Подтвердите обновление и подтверждайте последовательное обновление каждого узла кластера.
-
После завершения обновления проверьте версию Kubernetes в кластере:
$ kubectl get clusterversions version NAME VERSION K8SRELEASE AGE version v10.0.0 1.33 30d $ kubectl get nodes NAME STATUS ROLES AGE VERSION master.mycompany.local Ready control-plane 30d v1.33.13 infra.mycompany.local Ready infra 30d v1.33.13 worker.mycompany.local Ready worker 30d v1.33.13
4. Обновление с помощью Cluster Manager
Если кластер управляется с помощью Cluster Manager, запустите мастер обновления кластера и выберите вариант обновления только версии Kubernetes: оставьте текущую версию платформы и выберите новую версию Kubernetes. Подробнее см. в разделе Cluster Manager. Обновление.