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

Обновление версии 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

  1. Проверьте текущие версии платформы и Kubernetes:

    $ kubectl get clusterversions version
    NAME      VERSION   K8SRELEASE   AGE
    version   v10.0.0   1.32         30d
  2. Запустите обновление. В параметре --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
  3. Подтвердите обновление и подтверждайте последовательное обновление каждого узла кластера.

  4. После завершения обновления проверьте версию 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. Обновление.