Особенности дистрибутивов Kubernetes#
Процедура обновления не зависит от дистрибутива Kubernetes.
Для ее выполнения необходимы доступ к узлам кластера по SSH, право sudo и среда выполнения контейнеров containerd.
Для кластера, развернутого на собственных серверах или виртуальных машинах, дополнительные действия не требуются.
Боцман#
Процедура обновления в кластере под управлением платформы «Боцман» (Bootsman) совпадает с основным сценарием. Особенности:
для доступа по SSH к узлам подчиненного кластера укажите в поле
ansible_userописания инвентаря учетную записьbootsman;утилиту
kubectlможно использовать из веб-интерфейса «Боцмана» (Kubectl Shell), однако для запуска сценария размещения образов необходим установочный узел с доступом к узлам кластера по SSH;хранилище и классы
StorageClassпри обновлении не изменяются.
Примечание
Штатный контроллер Ingress «Боцмана» – ingress-nginx.
Если вместо него используется контроллер Traefik, компонент Automation Dashboard после обновления будет недоступен без дополнительной настройки, что относится к известным проблемам.
Yandex Managed Service for Kubernetes#
В управляемом кластере Yandex Cloud при наличии доступа к узлам по SSH применима основная процедура. В качестве альтернативы вместо стадии размещения образов можно использовать реестр Yandex Container Registry.
Для использования реестра выполните следующие действия:
Распакуйте установочный пакет на машине с установленным Docker – это может быть установочный узел или отдельная рабочая станция.
Получите IAM-токен и аутентифицируйтесь в реестре:
yc iam create-token | docker login cr.yandex --username iam --password-stdin
Загрузите образы и отправьте их в реестр:
export REGISTRY_ID="<registry_id>" for image_tar in ~/aa-bundle/images/*.tar; do docker load -i "${image_tar}" done docker tag registry.astra.ru/aa/<image>:2.1 cr.yandex/${REGISTRY_ID}/aa/<image>:2.1 docker push cr.yandex/${REGISTRY_ID}/aa/<image>:2.1
Здесь:
<registry_id>– идентификатор реестра Yandex Container Registry;<image>– название образа.
Повторите команды
docker tagиdocker pushдля каждого образа из каталогаimages/.В манифестах операторов замените реестр:
for f in ~/aa-bundle/operators/*.yaml; do sed -i.bak "s#registry.astra.ru/aa/#cr.yandex/${REGISTRY_ID}/aa/#g" "$f" done
Убедитесь, что узлы кластера могут загружать образы из реестра: назначьте сервисному аккаунту групп узлов кластера роль
container-registry.images.pullerна реестр. В этом случае дополнительные секреты для загрузки образов в кластере не требуются.В манифесте приложения укажите все поля образов, включая
control_plane_ee_imageиoffline_content_loader.image_name, с путемcr.yandex/<registry_id>/aa/.... Если в манифесте заданы верхнеуровневые поляimage,image_proxy,postgres_imageилиredis_image, обновите версии в соответствующих полях*_version, не указывая тег в имени образа.
Остальные стадии не отличаются от основного сценария.
Примечание
Срок жизни IAM-токена ограничен.
Если между аутентификацией и загрузкой образов прошло много времени, создайте новый токен и повторите команду docker login перед выполнением docker push.