StatefulSets
StatefulSet - это объект, который обеспечивает развертывание и управление набором подов, работающих в состоянии, то есть имеющих уникальные идентификаторы и сохраняющих свои данные при перезапуске. StatefulSet также гарантирует уникальность имён и IP-адресов для каждого пода, что облегчает работу с базами данных и другими приложениями, которые зависят от уникальных идентификаторов.
Создание StatefulSet
Для создания StatefulSet нажмите на кнопку + Cоздать StatefulSet. В открывшемся окне в блоке Описание задайте имя StatefulSet. При необходимости определите лейблы и определите совпадающие лейблы подов в блоке Селектор подов.
Задайте спецификацию StatefulSet:
- количество реплик;
- количество партиций;
- минимальное время готовности в секундах (minReadySeconds);
- revisionHistoryLimit - показатель, который ограничивает количество старых хранящихся реплик (по умолчанию выбрано 10);
- политика управления подами (podManagementPolicy):
- OrderedReady (выбрано по умолчанию)
- Parallel
- serviceName;
- Политика хранения PersistentVolumeClaim, в том числе:
- whenDeleted:
- Retain (выбрано по умолчанию)
- Delete
- whenScaled:
- Retain (выбрано по умолчанию)
- Delete
Определите шаблоны PersistentVolumeClaim. Для выбора нового шаблона нажмите +.
В открывшемся окне задайте имя шаблона. Определите Access Modes (по умолчанию выбрано ReadWriteOnce). Задайте Storage Class Name, размер и нажмите Сохранить.
Access Modes (режимы доступа): В Kubernetes есть 4 режима доступа к PersistentVolumeClaim:
- ReadWriteOnce (RWO): разрешает чтение и запись, но только и одному узлу (подключение к одному узлу).
- ReadOnlyMany (ROX): разрешает только чтение, но может быть использовано множеством узлов (подключение к нескольким узлам).
- ReadWriteMany (RWX): разрешает чтение и запись, а также может быть использовано множеством узлов одновременно (подключение к нескольким узлам).
- ReadWriteOncePod (RWOP): разрешает чтение и запись, но только к одному поду узла.
Примеры Storage Class Name:
- “standard” — обычный класс хранилища с общими параметрами.
- “fast” — класс хранилища с более быстрыми параметрами, например, SSD.
- “slow” — класс хранилища с более медленными параметрами, например, HDD.
Размер — это объем хранилища, который запрашивается для PVC. Чтобы задать размер:
- выберите единицу измерения стандартную для Kubernetes: байт (B), кибибайт (Ki), мебибайт (Mi), гибибайт (Gi);
- укажите значение запрашиваемого объема хранилища.
Скриншот

Определите init контейнеры и/или контейнеры, шаблон пода. При необходимости назначьте Volumes. Подробнее настройки разделов описаны на странице Pods.
Редактирование StatefulSet
Скриншот

Для редактирования доступны настройки:
- Спецификация StatefulSet, в том числе:
- количество реплик;
- количество партиций;
- минимальное время готовности в секундах (minReadySeconds). Минимальное время в секундах, в течение которого созданный POD должен стать доступным, без сбоя любого из его контейнеров. По умолчанию 0 (под будет считаться доступным, как только он будет готов);
- Политика хранения PersistentVolumeClaim, в том числе:
- whenDeleted
- whenScaled
- Шаблон пода;
- Контейнеры инициализации (Init контейнеры);
- Контейнеры;
- Volumes;
Удалить StatefulSet вы можете одним из способов:
- на странице StatefulSets нажмите в строке объекта;
- на странице просмотра StatefulSet на вкладке StatefulSet нажмите кнопку Удалить;
- на странице просмотра StatefulSet перейдите на вкладку Манифест и нажмите .
Также редактировать StatefulSet вы можете с помощью YAML манифеста. Перейдите на вкладку Манифест. После изменения манифеста выполните проверку. Результат проверки будет доступен в правой части экрана. Раскройте блок результата проверки, чтобы увидеть полный манифест. Если валидация формата манифеста StatefulSet не пройдена, выполнить проверку манифеста не будет возможным.
Сохраните изменения, внесенные в манифест. Несохраненные данные не будут применены.
Просмотр StatefulSet
Страница просмотра StatefulSet представляет собой страницу с вкладками:
- StatefulSet;
- Pods (имеет индикацию количества, содержит список подов, принадлежащих стейтфулсету). По нажатию на имя пода вы можете перейти на страницу просмотра пода;
- Шаблон пода (в т.ч. Контейнеры, Init Контейнеры, Volumes);
- Шаблоны PVC (имеет индикацию количества);
- Безопасность;
- Лейблы и аннотации (содержит список лейблов и аннотаций стейтфулсета);
- События (имеет индикацию количества);
- Манифест.
Вкладка StatefulSet
Вкладка StatefulSet содержит сведения о стейтфулсете, дате и времени создания, статусе.
Скриншот

В блоке “Спецификация StatefulSet” доступны сведения:
- Partition;
- minReadySeconds;
- revisionHistoryLimit;
- podManagementPolicy;
- serviceName.
Политика хранения PersistentVolumeClaim:
- whenDeleted;
- whenScaled.
Блок для скейлинга StatefulSet содержит параметр количества реплик.
Блок Метрики мониторинга отображает данные CPU Usage и Memory Usage всех объектов стейтфулсета суммарно за прошедший час.
Блок Селектор подов содержит сведения, заполненные на этапе создания StatefulSet.
Вкладка Pods
Скриншот

Содержит список подов, подчиненных стейтфулсету и сведения:
- Имя пода (доступна фильтрация).
- Отношение количества работающих контейнеров к общему количеству контейнеров в поде.
- Количество рестартов пода (доступна сортировка).
- Дата создания (доступна сортировка).
- Неймспейс (доступна фильтрация). Нажатие на имя неймспейса открывает дашбор неймспейса. Вы можете ввести значение для фильтрации подов по неймспейсам. Для отмены фильтрации по неймспейсам, в фильтре нажмите Отменить и далее Применить.
- Статус (доступна фильтрация). Возможные значения для выбора в фильтре: Running, Pending, Terminating, CrashLoopBackOff, Completed, Failed, Unknown.
- Какому родительскому объекту подчинен под (доступна фильтрация). Когда под подчинен нагрузке, нажатие на имя нагрузки открывает ее страницу просмотра.
- Узел, на котором размещен под (доступна фильтрация). Нажатие на узел открывает страницу просмотра узла при наличии прав доступа.
- QoS (Quality of Service) пода (доступна фильтрация по: Guaranteed, Burstable, BestEffort). Подробнее о QoS на странице Pods.
- Лейблы пода (по умолчанию колонка Лейблы не отображается). Чтобы просмотреть лейблы подов, нажмите на шестеренку в правом углу таблицы и выберите колонку Лейблы для отображения на экране.
Нажатие на строку пода открывает страницу просмотра пода.
Вкладка Шаблон пода
Скриншот

Содержит сведения о шаблоне пода, контейнерах, Init контейнерах и volumes стейтфулсета.
Вкладка Безопасность
Скриншот

Вкладка Безопасность содержит:
- результаты сканирования образов на уязвимости по объектам, содержащимся в этом стейтфулсете (Отображается только если в кластере установлен Модуль сканирования образов контейнеров);
- результаты анализа на соответствие политикам безопасности объектов, содержащихся в этом стейтфулсете (Отображается только если в кластере установлен Модуль анализа конфигураций приложений).
Вкладка События
Скриншот

Вкладка События содержит events StatefulSet со сведениями:
- индикатор типа события;
- дата и время;
- источник события;
- текст сообщения события.
Вкладка Манифест
Скриншот

На вкладке Манифест страницы просмотра и редактирования ранее созданного StatefulSet вы можете внести изменения в YAML манифест, скопировать манифест или удалить StatefulSet. Если StatefulSet имеет хотя бы один привилегированный контейнер, информация об этом будет отображена на вкладке.