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

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

Карта обновлений и особенности обновлений доступны по ссылке.

Если вы видите текст “Обновлений нет”, значит у вас последняя доступная версия кластера.

Штурвала могут быть обновлены на минорные и патч версии.

Ручной запуск обновления кластера

В блоке с текущей версией кластера нажмите Управлять. В открывшемся модальном окне:

  • Выберите версию кластера из списка.
  • Нажмите Обновить, чтобы запустить обновление на выбранную версию.

Автоматический запуск обновления кластера

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

При необходимости вы можете настроить отложенное обновление кластера в блоке “Настройка отложенного обновления” нажмите на +. В появившемся блоке укажите:

  • расписание в cron-формате. Между значениями необходимо ставить пробелы, чтобы отделять их друг от друга;
  • длительность окна обновления. Длительность показывает, какое количество времени может быть использовано для проведения обновления, если на момент проверки по расписанию будет доступна подходящая версия для обновления.
  • поведение системы при превышении окна обновления:
    • остановиться: все процессы по обновлению будут приостановлены и в окне обновления отобразится состояние “UpdatePaused”. Для возобновления обновления кластера нажмите Продолжить вне расписания.
    • продолжить: обновление будет продолжено до завершения.
  • разрешено ли автоматически обновлять до минорных версий. Если нет, то автоматически обновление будет только для патч версий.

Чтобы завершить настройку автоматического обновления нажмите Добавить.

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

Расписание отложенного обновления возможно удалить, если обновление кластера по нему еще не начато.

Troubleshooting

Иногда между минорными версиями платформы появляются breaking changes, из-за которых для обновления необходимы дополнительные действия. В версии 2.3.0 изменили механизм аутентификации в клиентских кластерах с помощью kubeconfig файла. Чтобы механизм работал корректно, необходимо внести небольшие изменения в клиентских кластерах.

После обновления клиентских кластеров с версии 2.2.x, произведите обновление каждого клиентского кластера согласно инструкции:

  1. Скачайте сертификат сервера авторизации кластера управления и разместите его на обновляемом клиентском кластере. Для этого последовательно подключитесь по SSH к каждому Мастер-узлу обновляемого клиентского кластера и на каждом Мастер-узле выполните команду:
</dev/null openssl s_client -connect auth.apps.my-manage-cluster.domain.local:443 -servername auth.apps.my-manage-cluster.domain.local | openssl x509 > /etc/ssl/certs/oidc.crt

Замените apps.my-manage-cluster.domain.local на Ingress вашего кластера управления.

  1. Выполните резервное копирование (бэкап) всей директории /etc/kubernetes на каждом Мастер-узле обновляемого клиентского кластера. Для этого введите в консоли команду:
tar -zcvf /root/kubernetes-`date '+%Y%m%d-%H%M%S'`.tar.gz /etc/kubernetes
  1. Отредактируйте конфигурацию кластера в обновляемом клиентском кластере:
kubectl -n kube-system edit cm kubeadm-config

Добавьте опции oidc в extraArgs для apiServer:

...
data:
  ClusterConfiguration: |
    apiServer:
      certSANs:
      - 10.31.145.48
      extraArgs:
        oidc-ca-file: /etc/ssl/certs/oidc.crt
        oidc-client-id: backend
        oidc-groups-claim: claims
        oidc-groups-prefix: "shturval:"
        oidc-issuer-url: https://auth.apps.my-manage-cluster.domain.local
        oidc-username-claim: sub
        oidc-username-prefix: "shturval:"
        authorization-mode: Node,RBAC
...

Замените apps.my-manage-cluster.domain.local на Ingress вашего кластера управления.

  1. Перегенерируйте конфиги на каждом Мастер-узле клиентского кластера, последовательно выполнив команду на каждом Мастер-узле:
sudo kubeadm upgrade node phase control-plane --etcd-upgrade=false

При возникновении трудностей в процессе обновления, вы можете обратиться для консультации и сопровождения к команде разработки Платформы “Штурвал”. Для этого из раздела “О системе” графического интерфейса платформы перейдите в сервис-деск и оставьте заявку на поддержку.