StatefulSet – объект Kubernetes для управления приложениями, которым важна идентичность экземпляров и сохранение данных: базами данных, брокерами сообщений, распределёнными хранилищами. В отличие от Deployment, поды StatefulSet получают стабильные имена (app-0, app-1…), стабильные сетевые имена через headless-сервис и собственные постоянные тома, которые сохраняются при пересоздании пода.
Особенности
- Упорядоченный запуск, масштабирование и обновление.
- Шаблоны запросов томов (volumeClaimTemplates) – отдельный том для каждой реплики.
- Сохранение тома при удалении пода.
Где применяется
- СУБД и их кластеры.
- Kafka, ZooKeeper, Elasticsearch и другие распределённые системы.
- Приложения, требующие стабильной идентичности.
Что важно
Эксплуатация баз данных в Kubernetes требует дополнительной логики: резервного копирования, переключения ролей, обновлений. Для этого используют операторы – контроллеры, автоматизирующие управление конкретной СУБД.