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);
  • укажите значение запрашиваемого объема хранилища.
Скриншот

templatepvc

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

Редактирование StatefulSet

Скриншот

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 содержит сведения о стейтфулсете, дате и времени создания, статусе.

Скриншот

statefulpod2

В блоке “Спецификация StatefulSet” доступны сведения:

  • Partition;
  • minReadySeconds;
  • revisionHistoryLimit;
  • podManagementPolicy;
  • serviceName.

Политика хранения PersistentVolumeClaim:

  • whenDeleted;
  • whenScaled.

Блок для скейлинга StatefulSet содержит параметр количества реплик.

Блок Метрики мониторинга отображает данные CPU Usage и Memory Usage всех объектов стейтфулсета суммарно за прошедший час.

Блок Селектор подов содержит сведения, заполненные на этапе создания StatefulSet.

Вкладка Pods

Скриншот

statefulpod2

Содержит список подов, подчиненных стейтфулсету и сведения:

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

Нажатие на строку пода открывает страницу просмотра пода.

Вкладка Шаблон пода

Скриншот

statefultp

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

Вкладка Безопасность

Скриншот

statefulsecure

Вкладка Безопасность содержит:

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

Вкладка События

Скриншот

statefulevent

Вкладка События содержит events StatefulSet со сведениями:

  • индикатор типа события;
  • дата и время;
  • источник события;
  • текст сообщения события.

Вкладка Манифест

Скриншот

statefulmanifest2

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

×