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.
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 serviceName en tu StatefulSet. Esto permite que cada Pod de tu aplicación se dirija a una dirección de red única y bien definida. Además, el Service sin interfaz gráfica proporciona un registro de varias IP para cada réplica en StatefulSet, lo que permite el descubrimiento completo de pares.
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:
Sondeos de funcionamiento: Puedes usar sondeos de funcionamiento para indicar si un contenedor está en buen estado. Por ejemplo, una réplica de la base de datos puede usar un sondeo de funcionamiento para indicar que GKE debe reiniciar la réplica, como una condición de interbloqueo.
Sondeos de preparación: puedes usar sondeos de preparación para quitar una réplica de la entrega de tráfico de manera temporal. Por ejemplo, si tienes una réplica de base de datos que necesita realizar una copia de seguridad, puedes usar un sondeo de preparación para dejar de recibir solicitudes de manera temporal.
Sondeo de inicio: Puedes usar sondeos de inicio para retrasar las verificaciones de estado hasta que se completen las inicializaciones de larga duración. Por ejemplo, si tienes una réplica de base de datos, puedes usar un sondeo de inicio para esperar la inicialización de los datos almacenados desde el disco.
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.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-09-01 (UTC)"],[],[],null,["# About StatefulSets in GKE\n\n[Autopilot](/kubernetes-engine/docs/concepts/autopilot-overview) [Standard](/kubernetes-engine/docs/concepts/choose-cluster-mode)\n\n*** ** * ** ***\n\nThis page describes the use of *StatefulSet* objects in\nGoogle Kubernetes Engine (GKE). You can also learn how to\n[Deploy a stateful application](/kubernetes-engine/docs/how-to/stateful-apps).\n\nAbout StatefulSets\n------------------\n\nStatefulSets represent a set of Pods with unique, persistent identities, and\nstable hostnames that GKE maintains regardless of where they are\nscheduled. The state information and other resilient data for any given\nStatefulSet Pod is maintained in [persistent\nvolumes](/kubernetes-engine/docs/concepts/persistent-volumes) associated with\neach Pod in the StatefulSet. StatefulSet Pods can be restarted at any time.\n\nFor [stateless applications](/kubernetes-engine/docs/how-to/deploying-workloads-overview#stateless_applications), use\n[Deployments](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/).\n\nStatefulSets function similarly in GKE and in Kubernetes. This\ndocument describes any GKE-specific considerations. To learn\nhow StatefulSets work, see the\n[Kubernetes documentation about StatefulSets](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/).\n\n### Plan networking for StatefulSets\n\nStatefulSets provide persistent storage in the form of a PersistentVolume and a\nunique network identity (hostname). The following table includes the caveats that\napplication operators should be aware of when configuring a StatefulSet:\n\nTo read more about probes, see [Configure Liveness, Readiness, and Startup Probes](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes).\n\n\nWork with StatefulSets\n----------------------\n\nTo learn how to deploy StatefulSets in your GKE cluster and\ninteract with them, see the Kubernetes documentation about\n[StatefulSet basics](https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/).\n\nWhat's next\n-----------\n\n- [Learn how to deploy a stateful application](/kubernetes-engine/docs/how-to/stateful-apps)\n- [Learn how to update StatefulSets using rolling updates](https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#rolling-update)\n- [Learn more about deploying workloads in GKE](/kubernetes-engine/docs/how-to/deploying-workloads-overview)\n- [Read more about StatefulSets in the Kubernetes documentation](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/)\n- [Take a tutorial about upgrading a cluster running a stateful workload](/kubernetes-engine/docs/tutorials/upgrading-stateful-workload)"]]