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. Настройки разделов описаны в Создание Pod.
Редактирование StatefulSet
Скриншот
Для редактирования доступны настройки:
- Спецификация StatefulSet, в том числе:
- количество реплик;
- количество партиций;
- минимальное время готовности в секундах (minReadySeconds). Минимальное время в секундах, в течение которого созданный POD должен стать доступным, без сбоя любого из его контейнеров. По умолчанию 0 (под будет считаться доступным, как только он будет готов);
- Политика хранения PersistentVolumeClaim, в том числе:
- whenDeleted
- whenScaled
- Шаблон пода;
- Контейнеры инициализации (Init контейнеры);
- Контейнеры;
- Volumes;
Для удаления нажмите в строке с названием Statefulset.
Также редактировать StatefulSet вы можете с помощью YAML манифеста. Перейдите на вкладку Манифест. После изменения манифеста выполните проверку. Результат проверки будет доступен в правой части экрана. Раскройте блок результата проверки, чтобы увидеть полный манифест. Если валидация формата манифеста StatefulSet не пройдена, выполнить проверку манифеста не будет возможным.
Сохраните изменения, внесенные в манифест. Несохраненные данные не будут применены.
Просмотр StatefulSet
Страница просмотра StatefulSet представляет собой страницу с вкладками. Под заголовком отображаются дата и время создания, статус, conditions.
На странице доступны вкладки:
- StatefulSet;
- Pods (имеет индикацию количества, содержит список подов, принадлежащих стейтфулсету). По нажатию на имя пода вы можете перейти на страницу просмотра пода;
- Шаблон пода (в т.ч. Контейнеры, Init Контейнеры, Volumes);
- Шаблоны PVC (имеет индикацию количества);
- Безопасность;
- Лейблы и аннотации (содержит список лейблов и аннотаций стейтфулсета);
- События (имеет индикацию количества);
- Манифест.
Вкладка StatefulSet
Вкладка StatefulSet содержит сведения о стейтфулсете. В блоке “Спецификация StatefulSet” доступны сведения:
- Partition;
- minReadySeconds;
- revisionHistoryLimit;
- podManagementPolicy;
- serviceName.
Политика хранения PersistentVolumeClaim:
- whenDeleted;
- whenScaled.
Блок для скейлинга StatefulSet содержит параметр количества реплик.
Блок Метрики мониторинга отображает данные CPU Usage и Memory Usage всех объектов стейтфулсета суммарно за прошедший час.
Блок Селектор подов содержит сведения, заполненные на этапе создания StatefulSet.
Вкладка Pods
Скриншот
Содержит список подов, подчиненных стейтфулсету и сведения о дате создания, статусе (цветовая индикация), лейблах пода. Чтобы просмотреть лейблы подов, добавьте колонку Лейблы для отображения на экране. Нажатие на строку пода открывает страницу просмотра пода.
Вкладка Шаблон пода
Скриншот
Содержит сведения о шаблоне пода, контейнерах, Init контейнерах и volumes стейтфулсета.
Вкладка Безопасность
Скриншот
Вкладка Безопасность содержит:
- результаты сканирования образов на уязвимости по объектам, содержащимся в этом стейтфулсете (Отображается только если в кластере установлен Модуль сканирования образов контейнеров);
- результаты анализа на соответствие политикам безопасности объектов, содержащихся в этом стейтфулсете (Отображается только если в кластере установлен Модуль анализа конфигураций приложений).
Вкладка События
Скриншот
Вкладка События содержит events StatefulSet со сведениями:
- индикатор типа события;
- дата и время;
- источник события;
- текст сообщения события.
Вкладка Манифест
Скриншот
На вкладке Манифест страницы просмотра и редактирования ранее созданного StatefulSet вы можете внести изменения в YAML манифест.