En esta página, se describe el uso de objetos StatefulSet en Google Kubernetes Engine (GKE). También puedes obtener información sobre cómo implementar una aplicación con estado.
Acerca de StatefulSets
Los objetos StatefulSet representan un conjunto de Pods con identidades exclusivas y persistentes, y con nombres de host estables que GKE conserva sin importar el lugar donde estén programados. La información de estado y otros datos resilientes de cualquier Pod del StatefulSet se conservan en volúmenes persistentes asociados a cada Pod del StatefulSet. Los Pods de StatefulSet se pueden reiniciar en cualquier momento.
Para las aplicaciones sin estado, debes usar objetos Deployment.
Los StatefulSets funcionan de manera similar en GKE y en Kubernetes. En este documento, se describen las consideraciones específicas para GKE. Para obtener información sobre cómo funcionan los StatefulSets, consulta la documentación de Kubernetes sobre StatefulSets.
Planifica las redes para StatefulSets
Los StatefulSets proporcionan almacenamiento persistente en forma de un PersistentVolume y una identidad de red única (nombre de host). En la siguiente tabla, se incluyen las advertencias que los operadores de aplicación deben tener en cuenta cuando configuran un StatefulSet:
Advertencia de Herramientas de redes | Descripción | Práctica recomendada |
---|---|---|
Services de GKE en lugar de direcciones IP fijas |
Aunque las réplicas de Pods tienen un índice ordinal único, admiten volúmenes por réplica, y cuentan con identidad de red (nombre de host), las direcciones IP asignadas a una réplica pueden cambiar si GKE reprograma o expulsa un Pod. |
Para mitigar los problemas de herramientas de redes, la arquitectura debe usar los recursos del Service de Kubernetes. Para obtener más información, consulta Tipos de Services de Kubernetes. |
Services sin interfaz gráfica |
Cuando se inicializa, StatefulSet se vincula con un Service sin interfaz gráfica coincidente. |
Asegúrate de que el “metadata.name” en tu Service coincida con el campo |
Descubrimiento de pares |
Las aplicaciones con estado requieren una cantidad mínima (de quórum) de réplicas para funcionar con disponibilidad completa. |
A medida que los pods pueden fallar, reprogramarse o expulsarse, cada réplica de StatefulSet debe poder salir y volver a unirse a quórum. Las aplicaciones que requieren intercambio de tráfico deben tener la capacidad de descubrir otros pares a través de Services sin interfaz gráfica en Kubernetes. |
Verificación de estado basada en sondeos de preparación y sondeos de funcionamiento |
Tu aplicación debe tener los sondeos de preparación, funcionamiento e inicio configurados adecuadamente cuando corresponda. La selección de tiempos de espera para cada sondeo depende de los requisitos de tu aplicación. |
Para los sondeos de preparación, sigue estas prácticas recomendadas a fin de configurar tu aplicación para marcar la preparación cuando esté lista para entregar tráfico:
|
Para leer más sobre los sondeos, consulta Configura sondeos de funcionamiento, inicio y preparación.
Trabaja con StatefulSets
Para obtener información sobre cómo implementar StatefulSets en tu clúster de GKE e interactuar con ellos, consulta la documentación de Kubernetes sobre los conceptos básicos de StatefulSets.
¿Qué sigue?
- Obtén más información para implementar una aplicación con estado.
- Aprende a actualizar StatefulSets mediante actualizaciones progresivas.
- Obtén más información sobre la implementación de cargas de trabajo en GKE.
- Lee más sobre los StatefulSets en la documentación de Kubernetes.
- Lee un instructivo sobre cómo actualizar un clúster que ejecuta una carga de trabajo con estado.