Compartir a través de


Creación de un objeto StatefulSet

Se aplica a: AKS en Azure Local 22H2, AKS en Windows Server

En este artículo se describe cómo crear, actualizar y eliminar StatefulSets, que se usan para mantener el estado de una aplicación más allá de un ciclo de vida de pod en una implementación de AKS en AKS habilitada por Azure Arc.

Introducción a StatefulSets

StatefulSets: mantienen el estado de las aplicaciones más allá del ciclo de vida de un determinado pod. Al igual que las implementaciones, un objeto StatefulSet crea y administra al menos un pod idéntico con identidades únicas y persistentes y nombres de host estables. Las réplicas de StatefulSet siguen un enfoque secuencial para la implementación, el escalado y la actualización.

StatefulSet es útil para las aplicaciones que requieren identificadores estables y únicos, almacenamiento persistente, implementación ordenada y escalado. Algunos ejemplos de estas aplicaciones son MySQL, MongoDB, Kafka y Cassandra. Las aplicaciones sin estado, como Apache y Tomcat, no se preocupan por la red que usan y no requieren almacenamiento persistente.

Los componentes principales de StatefulSets son el proveedor de volúmenes persistente y el servicio desatendido. Para obtener más información, consulte StatefulSets.

Cómo crear un StatefulSet

Puede crear un StatefulSet mediante el kubectl create comando o kubectl apply . Por ejemplo:

kubectl create –f statefulset.yaml

En el mismo archivo YAML de manifiesto, también puede crear el servicio desatendido que usa StatefulSet.

Para ver los componentes que creó para StatefulSet, ejecute el siguiente comando:

kubectl get statefulset

Si desea ver volúmenes persistentes, ejecute kubectl get pv. Para ver una notificación de volumen persistente, ejecute kubectl get pvc.

Actualización de objetos StatefulSet

Para actualizar statefulSet, edite el archivo de manifiesto y ejecute el mismo comando usado al crear statefulSet: kubectl apply –f statefulset.yaml.

Puede usar una actualización onDelete o una actualización gradual como estrategia de actualización:

  • Con una actualización de OnDelete, los pods no se reemplazan al aplicar el manifiesto, pero debe eliminar manualmente los pods StatefulSet existentes antes de crear la nueva versión.
  • En una actualización gradual, los pods StatefulSet se quitan y, a continuación, se reemplazan en orden ordinal inverso al aplicar el manifiesto.

Eliminación de un objeto StatefulSet

Use el comando kubectl delete para eliminar un objeto StatefulSet y para eliminar el servicio desatendido por separado. Para eliminar el objeto StatefulSet, ejecute el siguiente comando:

kubectl delete statefulset <statefulset_NAME>

A continuación, para eliminar el servicio desatendido, ejecute el siguiente comando:

kubectl delete service <svc_NAME>

Para eliminar el volumen persistente y la notificación de volumen persistente, use los kubectl delete pv comandos y kubectl delete pvc , respectivamente. Para evitar la pérdida de datos, el volumen persistente y la notificación de volumen persistente no se eliminan cuando se elimina statefulSet.

Pasos siguientes