J02.02. StatefulSet (Набор состояния)

Редактировал(а) Ирина Сафонова 06.01.2024, 22:23

Что такое StatefulSet (набор состояния)?


Набор состояния (StatefulSet) — функционал Cloud Managed Kubernetes, использующийся для управления приложениями с отслеживанием состояния. Набор отвечает за развертывание, масштабирование набора подов и гарантирует упорядоченность и уникальность этих подов.

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

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

Каким приложениям полезен набор состояния?

Наборы состояний полезны для приложений, которые требуют выполнение одного или несколько действий:

  • Обеспечение уникальных и стабильных сетевых идентификаторов и хранилища данных.
  • Упорядоченное развертывание и масштабирование.
  • Упорядоченные автоматические скользящие обновления.

Ссылки на документацию

Более подробно в официальной документации Kubernetes.

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


Перед выполнением настроек должны быть созданы:

Пользователь должен быть приглашен в проект и наделен ролью operator.

Создание набора состояния


Сервис Headless доступен в разделе Services раздела Application Workloads проекта и настраивается при создании набор состояния. Настройка состоит из следующих последовательных шагов:
1. Открытие дашборда.
2. Ввод основной информации.
3. Установка пода.
4. Определение количества томов.
5. Настройка дополнительных параметров.

При необходимости проверьте параметры настройки.

Шаг 1. Открытие дашборда

1. Войдите в консоль как project-regular.
2. Перейдите в Application Workloads проекта и выберите Workloads и нажмите кнопку Create на вкладке StatefulSets.

Шаг 2. Ввод основной информации

Задайте имя набору состояния, например, demo-stateful, выберите проект и нажмите кнопку Next.

Шаг 3. Установка пода

1. Перед установкой образа определите количество реплицированных подов, щелкнув icon или icon. Поды указаны в поле .spec.replicas в файле манифеста.

Чтобы просмотреть айл манифеста набора состояния в формате YAML, нажмите кнопку Edit YAML в правом верхнем углу. Cloud Managed Kubernetes позволяет редактировать файл манифеста для создания набора состояния. Кроме того, вы можете выполнить описанные ниже шаги, чтобы создать набор состояния через дашборд.

2. Нажмите на кнопку Add Container.
3. Введите имя образа из общедоступного Docker Hub или из указанного вами частного репозитория. Например, введите nginx в поле поиска и нажмите кнопку Enter.

  • Помните, что нажимать  Enter  на клавиатуре необходимо после ввода имени образа в поле поиска
  • Если вы хотите использовать свой личный репозиторий образов, вам следует сначала создать секретную переменную реестра образов в разделе Secrets раздела Configuration

4. Установите необходимые запросы и ограничения для ресурсов CPU и памяти.
5. Нажмите Use Default Ports для настроек порта или настройте протокол, имя и порт контейнера.
6. Выберите политику извлечения образов из раскрывающегося списка.
7. При необходимости настройте следующие параметры дашборда:

  • Health Check,
  • Start Command, 
  • Environment Variables, 
  • Container Security Context,
  • Synchronize Host Timezone.

Закончите настройку — нажмите кнопку √ в правом нижнем углу.

8. Выберите стратегию обновления в раскрывающемся меню. Рекомендуется выбрать Rolling Update.
9. Выберите правило планирования пода.
10. Нажмите кнопку Next, чтобы продолжить, когда вы закончите настройку пода.

Шаг 4. Определение количества томов

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

Шаг 5. Настройка дополнительных параметров

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

  • Выбор нод. Назначьте реплики подов для запуска на указанных нодах.
  • Добавление метаданных. Дополнительные настройки метаданных для таких ресурсов, как Labels и Annotations.

Проверка параметров настройки


При необходимости проверьте параметры настройки.

Страница сведений

1. После создания набор состояния отображается в списке. При необходимости щелкнете значок icon справа и выберите параметры в меню, чтобы изменить данные.

  • Edit Information: просмотр и редактирование основной информации.
  • Edit YAML: просмотр, загрузка, скачивание или обновление файла YAML.
  • Re-create: повторное создание набора состояния.
  • Delete: удаление набора состояния.

2. Щелкните имя набора состояния и при необходимости перейдите на страницу сведений.

3. Нажмите More, чтобы отобразить доступны операции с набором состояния.

  • Roll Back: версия для отката.
  • Edit Autoscaling: автоматическое масштабирование реплик в соответствии с использованием CPU и памяти. Если указаны и CPU, и память, реплики добавляются или удаляются при выполнении любого из условий.
  • Edit Settings: настройка стратегии обновления, контейнера и томов.
  • Edit YAML: просмотр, загрузка, скачивание или обновление файла YAML.
  • Re-create: повторное создание набора состояния.
  • Delete: удаление набора состояния. После удаления осуществляется возврат на страницу со списком наборов.

 4. Перейдите на вкладку Resource Status, чтобы просмотреть информацию о порте и поде набора состояния.

  • Replica Status: нажмите icon или icon, чтобы увеличить или уменьшить число реплик.
  • Pods. При необходимости просмотрите:
    • информацию о поде: состояние, нода, IP-адрес пода, использование ресурсов,
    • информацию о контейнере,
    • логи контейнера.

Регистрация изменений

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

Метаданные

Щелкните вкладку Metadata, чтобы просмотреть метки и аннотации набора состояния.

Мониторинг

1. Щелкните вкладку Monitoring, чтобы просмотреть использование CPU и памяти, исходящий и входящий трафик набора состояния.
2. Щелкните раскрывающееся меню в правом верхнем углу, чтобы настроить временной диапазон и интервал выборки.
3. Щелкните icon / icon значок в правом верхнем углу, чтобы запустить или остановить автоматическое обновление данных.
4. Щелкните icon в правом верхнем углу, чтобы вручную обновить данные.

Переменные среды

Щелкните вкладку Environment Variables, чтобы просмотреть переменные среды набора состояния.

События

Щелкните вкладку Events, чтобы просмотреть события набора состояния.

В начало 🡱
К следующему разделу 🡲
К предыдущему разделу 🡰