Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
    • Cloud Interconnect
    • Cloud Backup
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Router
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Managed Service for YDB
    • SpeechKit
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • Container Registry
    • Managed Service for Prometheus®
    • Message Queue
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Cloud Apps
    • Yandex AI Studio
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Yandex Cloud Video
    • Stackland
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • DataSphere
    • Vision OCR
    • Translate
    • Cloud Registry
    • SmartCaptcha
    • Cloud Desktop
    • Yandex SIEM
    • SourceCraft Code Assistant
    • Managed Service for GitLab
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Serverless Integrations
    • IoT Core
    • Serverless Containers
    • Cloud Notification Service
    • Yandex Query
  • Статус работы сервисов
  • Marketplace
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»
Yandex Cloud Stackland
  • Что нового
  • Установка
    • Все руководства
    • Установить Stackland на Yandex BareMetal
    • Установка Stackland на Yandex BareMetal через PXE
    • Установка Stackland на виртуальные машины в Yandex Cloud
    • Настройка внешнего доступа к поду в кластере
    • Все инструкции
      • Обновить кластер
      • Масштабирование кластера
    • Проекты
    • Ресурсная модель
    • Масштабирование кластера
    • Лицензирование
  • Управление доступом
  • Правила тарификации
  • Диагностика и устранение неполадок

В этой статье:

  • Перед началом работы
  • Выбрать релизный канал
  • Перед обновлением на 27.x
  • Проверить пользовательские ресурсы Ingress
  • Проверить работу приложения заранее
  • Отключить предыдущую реализацию Ingress
  • Кластер с доступом в интернет
  • Изолированный кластер
  • Проверить статус обновления
  • Получить подробную информацию
  • Просмотреть логи обновления
  1. Пошаговые инструкции
  2. Управление кластером
  3. Обновить кластер

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

Статья создана
Yandex Cloud
Обновлена 3 августа 2026 г.
Открыть в Markdown
  • Перед началом работы
  • Выбрать релизный канал
  • Перед обновлением на 27.x
    • Проверить пользовательские ресурсы Ingress
    • Проверить работу приложения заранее
    • Отключить предыдущую реализацию Ingress
    • Кластер с доступом в интернет
    • Изолированный кластер
  • Проверить статус обновления
  • Получить подробную информацию
  • Просмотреть логи обновления

Обновите кластер Stackland до новой версии с помощью ресурса Kubernetes TargetInstallationState. Обновление выполняется постепенно с эвакуацией нагрузки и перезагрузкой узлов.

Перед началом работыПеред началом работы

  1. Убедитесь, что у вас есть доступ к кластеру с правами администратора.

  2. Проверьте текущую версию кластера:

    kubectl get targetinstallationstate main -o jsonpath='{.status.currentVersion}'
    
  3. Узнайте, какие версии доступны для обновления. Список доступных версий зависит от того, подключен ли ваш кластер к интернету:

    • Кластер с доступом в интернет — доступные версии загружаются автоматически из реестра контейнеров Stackland.
    • Изолированный кластер — доступные версии определяются образами, загруженными в локальный реестр.

Выбрать релизный каналВыбрать релизный канал

Релизный канал определяет, какие версии Stackland доступны для обновления. По умолчанию используется канал stable.

Доступные каналы:

  • stable — стабильные релизы для production-использования. Доступен всем клиентам по умолчанию.
  • alpha — ранние релизы для тестирования новых функций. Доступ предоставляется по запросу.

Чтобы изменить релизный канал, отредактируйте ресурс PlatformConfig:

kubectl edit platformconfig main

В спецификации укажите нужный канал:

spec:
  releaseChannel: "stable"  # или "alpha"

Перед обновлением на 27.xПеред обновлением на 27.x

В Stackland 26.2 добавлена новая реализация Ingress-контроллера на основе Contour: предыдущая реализация на базе ingress-nginx больше не поддерживается. В Stackland 27 ingress-nginx будет исключен из поставки, поэтому мы предупреждаем вас об этих планах заранее. В релизах Stackland 26 ingress-nginx по-прежнему доступен для пользовательской нагрузки, но переход на новую реализацию нужно запланировать и осуществить до обновления на Stackland 27.

В большинстве случаев пользовательские манифесты Ingress с классом stackland-default продолжают работать, но специфичные для ingress-nginx аннотации nginx.ingress.kubernetes.io/* новый контроллер не поддерживает — их нужно убрать или заменить. Подробнее см. в разделе Проверить пользовательские ресурсы Ingress.

При этом действие оператора обязательно: без явного отключения предыдущей реализации Ingress-контроллера обновление на версию >= 27.0.0 не начнется.

Проверить пользовательские ресурсы IngressПроверить пользовательские ресурсы Ingress

Если в кластере есть пользовательские ресурсы Ingress:

  1. Найдите пользовательские ресурсы Ingress:

    kubectl get ingress -A
    
  2. Убедитесь, что у них указан spec.ingressClassName: stackland-default или поле отсутствует. В последнем случае используется класс по умолчанию.

  3. Проверьте, что в аннотациях не используются ключи вида nginx.ingress.kubernetes.io/*, специфичные для nginx. Если такие аннотации есть, уберите их или замените на эквиваленты нового Ingress-контроллера платформы — иначе после обновления соответствующие правила не применятся.

Проверить работу приложения заранееПроверить работу приложения заранее

Пока кластер работает на 26.x, вы можете заранее убедиться, что пользовательский Ingress совместим с новым Ingress-контроллером платформы.

Важно

При переключении spec.ingressClassName на stackland-system учитывайте, что у класса stackland-system собственный внешний IP-адрес, отличный от IP-адреса предыдущей реализации. Если DNS-зона делегирована платформе, запись домена автоматически переедет на LoadBalancer нового класса, но с задержкой на обновление DNS-записей — на это время часть клиентов будет обращаться по прежнему IP-адресу и попадать на предыдущую реализацию Ingress. После возврата класса на stackland-default действует аналогичная задержка.

Выполняйте проверку в окне технического обслуживания или на некритичном хосте.

  1. Во временной копии манифеста замените spec.ingressClassName: stackland-default на spec.ingressClassName: stackland-system и примените манифест:

    kubectl apply -f <имя_файла>.yaml
    
  2. Проверьте доступность приложения. Есть два способа:

    • Проверка напрямую через IP, без DNS. Этот способ не зависит от DNS-пропагации и от размещения DNS-зоны домена приложения.

      1. Получите внешний IP LoadBalancer, обслуживающего класс stackland-system:

        kubectl get svc -A \
          -l app.kubernetes.io/name=contour,app.kubernetes.io/component=envoy
        

        Если селектор не подходит для вашей установки, найдите сервис типа LoadBalancer в неймспейсе Contour вручную.

      2. Выполните запрос к приложению, подставив полученный IP:

        curl --resolve <домен>:443:<внешний_IP_Envoy> https://<домен>/
        
    • Проверка по домену. Работает, только если DNS-зона делегирована — тогда запись домена переместится на LoadBalancer класса stackland-system автоматически. Учитывайте задержку DNS. Если вы используете свой DNS, домен продолжит указывать на предыдущий LoadBalancer, и такая проверка даст ложно-отрицательный результат — используйте способ с curl --resolve.

  3. После проверки верните значение spec.ingressClassName обратно на stackland-default или удалите поле.

На 27.x этот шаг не нужен: класс stackland-default автоматически обслуживается новым Ingress-контроллером платформы.

Важно

stackland-system — служебный класс. Не используйте его для production-ресурсов Ingress, это только способ временной проверки совместимости перед обновлением.

Отключить предыдущую реализацию IngressОтключить предыдущую реализацию Ingress

  1. Отключите предыдущую реализацию Ingress в ресурсе IngressConfig:

    kubectl patch ingressconfig main --type=merge \
      -p '{"spec":{"settings":{"nginx":{"enabled":false}}}}'
    

После отключения ingress-nginx существующие Ingress-контроллеры будут автоматически перезапущены поверх Contour.

  1. Дождитесь, пока платформа переключится на единый Ingress-контроллер. Проверьте текущее состояние:

    kubectl get ingressconfig main -o jsonpath='{.status.ingress.observedIngress}'
    
Консоль управления
CLI

Если кластер не имеет доступа в интернет, необходимо предварительно загрузить образы новой версии в локальный реестр через CLI.

  1. В левом меню выберите Настройки.

  2. В подменю выберите Обновление.

  3. Нажмите ссылку Обновление для перехода на страницу обновления кластера.

  4. На странице «Обновление кластера» в блоке «Текущий статус обновления» проверьте текущее состояние:

    • Target version — целевая версия обновления;
    • Phase — фаза обновления;
    • Message — сообщение о текущем состоянии.
  5. В разделе «Доступные обновления» укажите версию для обновления.

  6. Нажмите Запустить обновление.

Инструкции CLI зависят от того, имеет ли кластер доступ в интернет.

Кластер с доступом в интернетКластер с доступом в интернет

Если кластер имеет доступ в интернет, образы новой версии загружаются автоматически из реестра контейнеров Stackland.

Подготовка к обновлениюПодготовка к обновлению

Дождитесь появления нового релиза в ресурсе AvailableReleases. Проверить доступные релизы можно командой:

kubectl get availablereleases main -o yaml

Пример вывода:

apiVersion: stackland.yandex.cloud/v1alpha1
kind: AvailableReleases
metadata:
  name: main
status:
  releases:
    - version: "26.1.0"
      ready: true
    - version: "26.1.1"
      ready: true

Когда нужная версия появится в списке со статусом ready: true, можно запускать обновление.

Запустить обновлениеЗапустить обновление

  1. Создайте файл манифеста. Например, с помощью команды touch upgrade.yaml.

  2. Откройте файл и вставьте конфигурацию:

    apiVersion: stackland.yandex.cloud/v1alpha1
    kind: TargetInstallationState
    metadata:
      name: main
    spec:
      targetVersion: "<версия>"
      installationTimeout: "2h"
    

    Где:

    • targetVersion — целевая версия для обновления. Укажите значение из availablereleases[main].status.releases[<желаемый_релиз>].version.
    • installationTimeout — максимальное время выполнения обновления.
  3. Примените манифест:

    kubectl apply -f upgrade.yaml
    

Изолированный кластерИзолированный кластер

Если кластер не имеет доступа в интернет, необходимо предварительно загрузить образы новой версии в локальный реестр.

Скачать утилиту SLADMСкачать утилиту SLADM

На машине с доступом в интернет скачайте свежую версию утилиты sladm, как при первоначальной установке.

Загрузить образы на машине с интернетомЗагрузить образы на машине с интернетом

На машине с доступом в интернет выполните команду:

sladm pull --image-bundle full

Где:

  • --image-bundle — тип пакета образов (full для полного набора).

Примечание

Для обновления образов отдельно лицензируемых компонентов, таких как SpeechSense, дополнительно выполните загрузку с --image-bundle speechsense. Подробнее см. в разделе Загрузить образы SpeechSense.

Перенести артефакты во внутренний контурПеренести артефакты во внутренний контур

Перенесите на машину с доступом к локальному реестру кластера:

  • бинарный файл sladm;
  • файл release.yaml;
  • папку <имя_релиза>-oci.

Загрузить образы в локальный реестрЗагрузить образы в локальный реестр

На машине с доступом к кластеру выполните команду:

sladm push --local-registry --kubeconfig=<путь_к_kubeconfig> --image-bundle-folder <имя_папки>-oci

Где:

  • --local-registry — указывает на использование локального реестра кластера;
  • --kubeconfig — путь к файлу kubeconfig для доступа к кластеру;
  • --image-bundle-folder — путь к папке с образами.

Дождаться появления релизаДождаться появления релиза

После загрузки образов дождитесь появления нового релиза в ресурсе AvailableReleases:

kubectl get availablereleases main -o yaml

Когда нужная версия появится в списке со статусом ready: true, можно запускать обновление.

Запустить обновлениеЗапустить обновление

  1. Создайте файл манифеста. Например, с помощью команды touch upgrade.yaml.

  2. Откройте файл и вставьте конфигурацию:

    apiVersion: stackland.yandex.cloud/v1alpha1
    kind: TargetInstallationState
    metadata:
      name: main
    spec:
      targetVersion: "<версия>"
      installationTimeout: "2h"
    

    Где:

    • targetVersion — целевая версия для обновления. Укажите значение из availablereleases[main].status.releases[<желаемый_релиз>].version.
    • installationTimeout — максимальное время выполнения обновления.
  3. Примените манифест:

    kubectl apply -f upgrade.yaml
    

Проверить статус обновленияПроверить статус обновления

После применения манифеста вы можете отслеживать статус обновления:

kubectl get targetinstallationstate main

Пример вывода:

NAME   TARGET VERSION   CURRENT VERSION   PHASE     MESSAGE                           AGE
main   26.1.1           26.1.0            Running   Running upgrade to version 26.1.1 5m

Получить подробную информациюПолучить подробную информацию

Выполните команду:

kubectl describe targetinstallationstate main

В поле status отображается:

  • currentVersion — текущая установленная версия.
  • phase — фаза обновления:
    • Pending — обновление ожидает запуска.
    • Running — обновление выполняется.
    • Completed — обновление выполнено.
    • Failed — обновление завершилось с ошибкой.
  • message — сообщение о текущем состоянии.
  • jobName — имя задания Kubernetes, выполняющего обновление.
  • lastUpdateTime — время последнего обновления статуса.

Просмотреть логи обновленияПросмотреть логи обновления

Чтобы просмотреть логи задания обновления, выполните команду:

kubectl logs -n stackland-install job/<имя_задания>

Имя задания можно получить из поля status.jobName ресурса TargetInstallationState.

Была ли статья полезна?

Предыдущая
Переключить класс хранилища компонента
Следующая
Масштабирование кластера
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»