StatefulSets
Содержание
Понимание StatefulSetsСоздание StatefulSetsСоздание StatefulSet с помощью CLIПредварительные требованияПример YAML-файлаСоздание StatefulSet через YAMLСоздание StatefulSet через веб-консольПредварительные требованияПроцедура — Настройка базовой информацииПроцедура — Настройка PodПроцедура — Настройка контейнеровПроцедура — СозданиеПроверка состояния (Health Checks)Управление StatefulSetsУправление StatefulSet с помощью CLIПросмотр StatefulSetМасштабирование StatefulSetОбновление StatefulSet (Rolling Update)Удаление StatefulSetУправление StatefulSet через веб-консольПросмотр StatefulSetОбновление StatefulSetУдаление StatefulSetПонимание StatefulSets
Обратитесь к официальной документации Kubernetes: StatefulSets
StatefulSet — это объект API рабочих нагрузок Kubernetes, предназначенный для управления stateful-приложениями, обеспечивая:
- Стабильную сетевую идентичность: DNS-имя хоста
<statefulset-name>-<ordinal>.<service-name>.ns.svc.cluster.local. - Стабильное постоянное хранилище: через
volumeClaimTemplates. - Упорядоченное развертывание/масштабирование: последовательное создание/удаление Pod-ов: Pod-0 → Pod-1 → Pod-N.
- Упорядоченные обновления с прокруткой: обновления Pod-ов в обратном порядке: Pod-N → Pod-0.
В распределённых системах несколько StatefulSets могут быть развернуты как отдельные компоненты для предоставления специализированных stateful-сервисов (например, Kafka brokers, MongoDB shards).
Создание StatefulSets
Создание StatefulSet с помощью CLI
Предварительные требования
- Убедитесь, что
kubectlнастроен и подключён к вашему кластеру.
Пример YAML-файла
Создание StatefulSet через YAML
Создание StatefulSet через веб-консоль
Предварительные требования
Получите адрес образа. Источником образов могут быть репозитории образов, интегрированные администратором платформы через toolchain, либо репозитории образов сторонних платформ.
-
В первом случае администратор обычно назначает репозиторий образов вашему проекту, и вы можете использовать образы из него. Если нужный репозиторий образов не найден, обратитесь к администратору для выделения.
-
Если это репозиторий образов сторонней платформы, убедитесь, что образы можно напрямую загрузить из него в текущем кластере.
Процедура — Настройка базовой информации
-
В Container Platform перейдите в Workloads > StatefulSets в левой боковой панели.
-
Нажмите Create StatefulSet.
-
Выберите или введите образ и нажмите Confirm.
Примечание: При использовании образов из репозитория, интегрированного в веб-консоль, можно фильтровать образы по Already Integrated. Integration Project Name, например, образы (docker-registry-projectname), где projectname — имя проекта в этой веб-консоли и имя проекта containers в репозитории образов.
В разделе Basic Info настройте декларативные параметры для рабочих нагрузок StatefulSet:
Процедура — Настройка Pod
Раздел Pod, см. Deployment - Configure Pod
Процедура — Настройка контейнеров
Раздел Containers, см. Deployment - Configure Containers
Процедура — Создание
Нажмите Create.
Проверка состояния (Health Checks)
Управление StatefulSets
Управление StatefulSet с помощью CLI
Просмотр StatefulSet
Вы можете просмотреть StatefulSet, чтобы получить информацию о вашем приложении.
-
Проверьте, что StatefulSet создан.
-
Получите подробную информацию о вашем StatefulSet.
Масштабирование StatefulSet
-
Чтобы изменить количество реплик для существующего StatefulSet:
-
Пример:
Обновление StatefulSet (Rolling Update)
При изменении шаблона Pod-а StatefulSet (например, смена образа контейнера) Kubernetes по умолчанию выполняет обновление с прокруткой (если updateStrategy установлен в RollingUpdate, что является значением по умолчанию).
-
Сначала отредактируйте YAML-файл (например, example-statefulset.yaml) с нужными изменениями, затем примените его:
-
Затем вы можете отслеживать прогресс обновления с прокруткой:
Удаление StatefulSet
Чтобы удалить StatefulSet и связанные с ним Pod-ы:
По умолчанию удаление StatefulSet не удаляет связанные PersistentVolumeClaims (PVC) или PersistentVolumes (PV) во избежание потери данных. Чтобы удалить также PVC, сделайте это явно:
Альтернативно, если ваши volumeClaimTemplates используют StorageClass с политикой reclaimPolicy равной Delete, PV и подлежащие хранилища будут удалены автоматически при удалении PVC.
Управление StatefulSet через веб-консоль
Просмотр StatefulSet
- В Container Platform перейдите в Workloads > StatefulSets.
- Найдите StatefulSet, который хотите просмотреть.
- Нажмите на имя StatefulSet, чтобы увидеть Details, Topology, Logs, Events, Monitoring и т.д.
Обновление StatefulSet
- В Container Platform перейдите в Workloads > StatefulSets.
- Найдите StatefulSet, который хотите обновить.
- В выпадающем меню Actions выберите Update, чтобы открыть страницу редактирования StatefulSet, где можно обновить
Replicas,image,updateStrategyи др.
Удаление StatefulSet
- В Container Platform перейдите в Workloads > StatefulSets.
- Найдите StatefulSet, который хотите удалить.
- В выпадающем меню Actions нажмите кнопку Delete в колонке операций и подтвердите.