Informazioni sugli StatefulSet in GKE


Questa pagina descrive l'utilizzo degli oggetti StatefulSet in Google Kubernetes Engine (GKE). Puoi anche scoprire come eseguire il deployment di un'applicazione stateful.

Informazioni sugli StatefulSet

Gli oggetti StatefulSet rappresentano un insieme di pod con identità univoche e permanenti e nomi host stabili che GKE mantiene indipendentemente da dove vengono pianificati. Le informazioni sullo stato e altri dati resilienti per ogni pod StatefulSet vengono conservati in volumi permanenti associati a ciascun pod nello StatefulSet. I pod StatefulSet possono essere riavviati in qualsiasi momento.

Per le applicazioni stateless, usa Deployment.

Gli StatefulSet funzionano in modo simile in GKE e in Kubernetes. Questo documento descrive eventuali considerazioni specifiche per GKE. Per scoprire come funzionano gli StatefulSet, consulta la documentazione di Kubernetes sugli StatefulSet.

Pianifica il networking per gli StatefulSet

Gli StatefulSet forniscono spazio di archiviazione permanente sotto forma di PersistentVolume e di un'identità di rete univoca (nome host). La seguente tabella include le avvertenze di cui gli operatori delle applicazioni devono essere a conoscenza durante la configurazione di uno StatefulSet:

Avvertenza relativa al networking Descrizione Best practice
servizi GKE anziché indirizzi IP fissi

Sebbene le repliche dei pod abbiano un indice ordinale univoco, un supporto di volumi per replica e un'identità di rete (nome host), gli indirizzi IP assegnati a una replica possono cambiare se GKE ripianifica o rimuove un pod.

Per mitigare i problemi di networking, l'architettura deve utilizzare le risorse del servizio Kubernetes. Per saperne di più, consulta Tipi di servizi Kubernetes.

Servizi headless

Quando viene inizializzato, uno StatefulSet viene accoppiato a un servizio headless corrispondente.

Assicurati che "metadata.name" nel servizio corrisponda al campo serviceName nello StatefulSet. Ciò consente di indirizzare ogni pod nella tua applicazione a un indirizzo di rete univoco e ben definito. Inoltre, il servizio headless fornisce un record multi-IP per ogni replica nello StatefulSet, consentendo il rilevamento completo dei peer.

Rilevamento dei compagni

Le applicazioni stateful richiedono un numero minimo (quorum) di repliche per funzionare con la disponibilità completa.

Poiché i pod possono arrestarsi in modo anomalo, essere ripianificati o rimossi, ogni replica in uno StatefulSet dovrebbe essere in grado di uscire e rientrare nel quorum. Le applicazioni che richiedono il peering dovrebbero avere la capacità di rilevare altri peer tramite i servizi headless in Kubernetes.

Controllo di integrità basato su probe di idoneità e probe di attività

L'applicazione deve avere configurato correttamente i probe di idoneità, di attività e di avvio, ove applicabile. La selezione dei timeout per ogni probe dipende dai requisiti della tua applicazione.

Per i probe di idoneità, segui queste best practice per configurare l'applicazione in modo che contrassegni l'idoneità quando è pronta per gestire il traffico:

  • Probe di attività: puoi utilizzare i probe di attività per segnalare se un container è integro. Ad esempio, una replica di database può utilizzare un probe di attività per indicare che GKE deve riavviare la replica, come la condizione di deadlock
  • Probe di idoneità:puoi utilizzare i probe di idoneità per rimuovere temporaneamente una replica dalla gestione del traffico. Ad esempio, se hai una replica del database che deve eseguire un backup, potresti utilizzare un probe di idoneità per interrompere temporaneamente la ricezione delle richieste.
  • Probe di avvio: puoi utilizzare i probe di avvio per ritardare i controlli di integrità fino al completamento delle inizializzazioni a lunga esecuzione. Ad esempio, se hai una replica del database, potresti utilizzare un probe di avvio per attendere l'inizializzazione dei dati archiviati dal disco.

Per scoprire di più sui probe, consulta Configurare i probe di attività, di idoneità e di avvio.

Utilizzare gli StatefulSet

Per informazioni su come eseguire il deployment degli StatefulSet nel tuo cluster GKE e interagire con gli stessi, consulta la documentazione di Kubernetes sulle informazioni di base sugli StatefulSet.

Passaggi successivi