Создание StatefulSet в гибридной среде AKS
В этой статье описывается, как создавать, обновлять и удалять наборы StatefulSet, которые используются для поддержания состояния приложения после жизненного цикла pod в развертывании Azure Kubernetes Serice в гибридной среде AKS.
Общие сведения о наборах statefulSets
StatefulSets поддерживает состояние приложений за пределами жизненного цикла отдельного модуля pod. Как и при развертывании, StatefulSet создает и управляет по крайней мере одним идентичным модулем pod с уникальными постоянными удостоверениями и стабильными именами узлов. Реплики в StatefulSet следуют последовательному подходу к развертыванию, масштабированию и обновлению.
StatefulSet полезен для приложений, которым требуются стабильные и уникальные идентификаторы, постоянное хранилище, упорядоченное развертывание и масштабирование. Примерами таких приложений являются MySQL, MongoDB, Kafka и Cassandra. Приложения без отслеживания состояния, такие как Apache и Tomcat, не связаны с используемой сетью и не требуют постоянного хранилища.
Main компонентами StatefulSets являются постоянный компонент подготовки томов и служба без головы. Дополнительные сведения см. в разделе StatefulSets.
Создание набора statefulSet
StatefulSet создается с помощью kubectl create
команды или , kubectl apply
например:
kubectl create –f statefulset.yaml
В том же YAML-файле манифеста можно также создать службу без головы, которую использует StatefulSet.
Чтобы просмотреть компоненты, созданные для StatefulSet, выполните следующую команду:
kubectl get statefulset
Если вы хотите просмотреть постоянные тома, выполните команду kubectl get pv
. Чтобы просмотреть утверждение постоянного тома, выполните команду kubectl get pvc
.
Обновление наборов statefulSet
Чтобы обновить 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.