Auf dieser Seite wird die Verwendung von StatefulSet-Objekten in Google Kubernetes Engine (GKE) beschrieben. Außerdem erfahren Sie, wie Sie eine zustandsorientierte Anwendung bereitstellen.
StatefulSets
StatefulSets stellen einen Satz Pods mit eindeutigen, dauerhaften Identitäten und stabilen Hostnamen dar, die von GKE unabhängig davon verwaltet werden, wo sie geplant sind. Die Zustandsinformationen und andere stabile Daten für einen StatefulSet-Pod werden in nichtflüchtigen Volumes verwaltet, die jedem Pod im StatefulSet zugeordnet sind. StatefulSet-Pods können jederzeit neu gestartet werden.
Für zustandslose Anwendungen können Sie Deployments verwenden.
StatefulSets funktionieren in GKE und Kubernetes ähnlich. In diesem Dokument werden alle GKE-spezifischen Überlegungen beschrieben. Informationen zur Funktionsweise von StatefulSets finden Sie in der Kubernetes-Dokumentation zu StatefulSets.
Netzwerk für StatefulSets planen
StatefulSets bieten nichtflüchtigen Speicher in Form eines PersistentVolume und einer eindeutigen Netzwerkidentität (Hostname). Die folgende Tabelle enthält die Einschränkungen, die Anwendungsoperatoren bei der Konfiguration eines StatefulSets kennen sollten:
Netzwerkeinschränkungen | Beschreibung | Best Practice |
---|---|---|
GKE-Services anstelle von festen IP-Adressen |
Obwohl Pod-Replikate einen eindeutigen Ordinalindex haben, Replikat-Volumes und die Netzwerkidentität (Hostname) unterstützen, können sich die einem Replikat zugewiesenen IP-Adressen ändern, wenn GKE einen Pod neu plant oder entfernt. |
Zum Beheben von Netzwerkproblemen sollte die Architektur Kubernetes-Service-Ressourcen verwenden. Weitere Informationen finden Sie unter Kubernetes-Services. |
Monitorlose Dienste |
Bei der Initialisierung wird ein StatefulSet mit einem passenden monitorlosen Dienst gekoppelt. |
Prüfen Sie, ob der „metadata.name“ in Ihrem Service mit dem Feld |
Peer-Erkennung |
Zustandsorientierte Anwendungen erfordern eine Mindestanzahl (Quorum) von Replikaten, um eine vollständige Verfügbarkeit zu bieten. |
Da Pods abstürzen, neu geplant oder entfernt werden können, sollte jedes Replikat in einem StatefulSet das Quorum verlassen und sich wieder verbinden können. Anwendungen, die Peering benötigen, sollten in der Lage sein, andere Peers über monitorlose Services in Kubernetes zu erkennen. |
Systemdiagnose auf Grundlage von Bereitschaftsprüfungen und Aktivitätsprüfungen |
Ihre Anwendung sollte gegebenenfalls auf geeignete Weise Bereitschafts-, Aktivitäts- und Startprüfungen konfigurieren. Die Auswahl der Zeitlimits für jede Prüfung hängt von den Anforderungen Ihrer Anwendung ab. |
Folgen Sie bei Bereitschaftsprüfungen diesen Best Practices, um Ihre Anwendung so zu konfigurieren, dass sie Bereitschaft signalisiert, wenn sie in der Lage ist, Traffic bereitzustellen:
|
Weitere Informationen zu Prüfungen finden Sie unter Aktivitäts-, Bereitschafts- und Startprüfungen konfigurieren.
Mit StatefulSets arbeiten
Informationen zum Bereitstellen von StatefulSets in Ihrem GKE-Cluster und zur Interaktion mit ihnen finden Sie in der Kubernetes-Dokumentation zu den StatefulSet-Grundlagen.
Nächste Schritte
- Weitere Informationen zum Bereitstellen einer zustandsorientierten Anwendung
- StatefulSets mit Rolling Updates aktualisieren
- Weitere Informationen zum Bereitstellen von Arbeitslasten in GKE
- Weitere Informationen zu StatefulSets in der Kubernetes-Dokumentation
- Anleitung zum Durchführen eines Upgrades für einen Cluster, der eine zustandsorientierte Arbeitslast ausführt