Cette page décrit l'utilisation des objets StatefulSet dans Google Kubernetes Engine (GKE). Vous pouvez également apprendre à Déployer une application avec état.
À propos des objets StatefulSet
Un StatefulSet représente un ensemble de pods dotés d'identités uniques et persistantes et de noms d'hôtes stables que GKE conserve, quel que soit l'endroit où ils sont planifiés. Les informations d'état et autres données résilientes relatives à un pod d'un StatefulSet donné sont conservées dans des volumes persistants associés à chaque pod du StatefulSet. Les pods StatefulSet peuvent être redémarrés à tout moment.
Les StatefulSets fonctionnent de manière similaire dans GKE et dans Kubernetes. Ce document décrit les considérations spécifiques à GKE. Pour en savoir plus sur le fonctionnement des StatefulSets, consultez la documentation Kubernetes sur les StatefulSets.
Planifier la mise en réseau des StatefulSets
Les StatefulSets fournissent un espace de stockage persistant sous la forme d'un PersistentVolume et une identité réseau unique (nom d'hôte). Le tableau suivant répertorie les mises en garde que les opérateurs d'application doivent prendre en compte lors de la configuration d'un StatefulSet :
Mise en garde concernant la mise en réseau
Description
Bonne pratique
Services GKE au lieu d'adresses IP fixes
Bien que les instances répliquées des pods aient un index ordinal unique, des volumes par instance et une identité réseau (nom d'hôte), les adresses IP attribuées à une instance répliquée peuvent changer si GKE replanifie ou évince un pod.
Pour atténuer les problèmes de mise en réseau, l'architecture doit utiliser les ressources de service Kubernetes. Pour plus d'informations, consultez la section Types de services Kubernetes.
Services sans interface graphique
Lorsqu'il est initialisé, un StatefulSet est associé à un service sans interface graphique correspondant.
Assurez-vous que le "metadata.name" de votre service correspond au champ serviceName de votre StatefulSet. Cela permet de fournir à chaque pod de votre application à une adresse réseau unique et bien définie. De plus, le service sans interface graphique fournit un enregistrement multi-IP pour chaque instance dupliquée de votre StatefulSet, ce qui permet une découverte complète des pairs.
Découverte de pairs
Les applications avec état nécessitent un nombre minimal (quorum) d'instances dupliquées pour fonctionner avec une disponibilité complète.
Les pods pouvant planter, être reprogrammés ou être évincés, chaque instance dupliquée d'un StatefulSet doit pouvoir quitter et rejoindre le quorum. Les applications nécessitant un appairage doivent avoir la possibilité de découvrir d'autres pairs via des services sans interface graphique dans Kubernetes.
Vérification d'état basée sur des vérifications d'aptitude et d'activité
Le cas échéant, votre application doit être correctement configurée pour les vérifications d'aptitude, d'activité et de démarrage.
Le choix de délai avant expiration pour chaque vérification dépend des exigences de votre application.
Pour les vérifications d'aptitude, suivez les bonnes pratiques ci-dessous pour configurer votre application de manière à indiquer qu'elle est prête à diffuser du trafic :
Vérifications d'activité : vous pouvez utiliser les vérifications d'activité pour signaler si un conteneur est opérationnel. Par exemple, une instance dupliquée de base de données peut utiliser une vérification d'activité pour indiquer à GKE que l'instance dupliquée doit être redémarrée, par exemple en condition d'interblocage.
Vérifications d'aptitude : vous pouvez utiliser des vérifications d'aptitude pour arrêter temporairement de diffuser du trafic vers une instance dupliquée. Par exemple, si vous disposez d'une instance dupliquée de base de données qui doit effectuer une sauvegarde, vous pouvez utiliser une vérification d'aptitude pour arrêter temporairement la réception de requêtes.
Vérification de démarrage : vous pouvez utiliser des vérifications de démarrage pour retarder les vérifications d'état afin d'attendre que les initialisations plus longues se terminent. Par exemple, si vous disposez d'une instance dupliquée de base de données, vous pouvez utiliser une vérification de démarrage pour attendre l'initialisation des données stockées sur le disque.
Pour découvrir comment déployer des StatefulSets dans votre cluster GKE et interagir avec eux, consultez la documentation Kubernetes sur les principes de base des StatefulSets.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/22 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/22 (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)"]]