Создание набора с отслеживанием состояния
StatefulSets поддерживает состояние приложений за пределами отдельного жизненного цикла pod. Как и при развертывании, statefulSet создает и управляет по крайней мере одним идентичным модулем pod с уникальными постоянными удостоверениями и стабильными именами узлов. Реплики в StatefulSet следуют последовательному подходу к развертыванию, масштабированию и обновлению.
Набор statefulSet полезен для приложений, требующих стабильных и уникальных идентификаторов, постоянного хранилища, упорядоченного развертывания и масштабирования. Примерами этих приложений являются MySQL, MongoDB, Kafka и Cassandra. Приложения без отслеживания состояния, такие как Apache и Tomcat, не обеспокоены тем, какую сеть они используют и не требуют постоянного хранилища.
Основными компонентами StatefulSet являются постоянный поставщик томов и служба без головы. Дополнительные сведения см. в разделе StatefulSets.
Создание набора с отслеживанием состояния
Создайте набор с отслеживанием состояния с помощью kubectl create
команды или kubectl apply
, например:
kubectl create –f statefulset.yaml
В том же файле YAML манифеста можно также создать бессерверную службу, которую использует StatefulSet.
Чтобы просмотреть компоненты, созданные для statefulSet, выполните следующую команду:
kubectl get statefulset
Если вы хотите просмотреть постоянные тома, запустить kubectl get pv
и просмотреть утверждение постоянного тома, выполните команду kubectl get pvc
.
Обновление наборов с отслеживанием состояния
Чтобы обновить statefulSet, измените файл манифеста и выполните ту же команду, которая использовалась при создании StatefulSet: kubectl apply –f statefulset.yaml
. Вы можете использовать обновление OnDelete или последовательное обновление в качестве стратегии обновления. При обновлении OnDelete модули pod не заменяются при применении манифеста, но перед созданием новой версии необходимо вручную удалить существующие модули pod StatefulSet. В последовательном обновлении модули pod StatefulSet удаляются, а затем заменяются в обратном порядковом порядке при применении манифеста.
Удаление набора с отслеживанием состояния
kubectl delete
Используйте команду для удаления statefulSet и удаления службы без головы отдельно. Чтобы удалить StatefulSet, выполните следующую команду:
kubectl delete statefulset <statefulset_NAME>
Затем, чтобы удалить службу без головы, выполните следующую команду:
kubectl delete service <svc_NAME>
Чтобы удалить постоянный том и утверждение постоянного тома, используйте kubectl delete pv
и kubectl delete pvc
соответственно. Чтобы предотвратить потерю данных, утверждение постоянного тома и постоянного тома не удаляются при удалении statefulSet.