StatefulSets in GKE


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 serviceName in Ihrem StatefulSet übereinstimmt. Dadurch kann jeder Pod in Ihrer Anwendung mit einer eindeutigen, klar definierten Netzwerkadresse angegeben werden. Darüber hinaus bietet der monitorlose Dienst für jedes Replikat in Ihrem StatefulSet einen Multi-IP-Eintrag, der eine vollständige Peer-Erkennung ermöglicht.

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:

  • Aktivitätsprüfungen: Mithilfe von Aktivitätsprüfungen können Sie feststellen, ob ein Container fehlerfrei ist. Beispielsweise kann ein Datenbankreplikat eine Aktivitätsprüfung verwenden, um anzugeben, dass GKE das Replikat neu starten soll, z. B. eine Deadlock-Bedingung.
  • Bereitschaftsprüfungen: Sie können Bereitschaftsprüfungen verwenden, um dafür zu sorgen, dass ein Replikat vorübergehend keinen Traffic bereitstellt. Wenn Sie beispielsweise ein Datenbankreplikat haben, das eine Sicherung durchführen muss, können Sie mit einer Bereitschaftsprüfung dafür sorgen, dass das Replikat vorübergehend keine Anfragen mehr erhält.
  • Startprüfung: Sie können Startprüfungen verwenden, um Systemdiagnosen zu verzögern, bis lang andauernde Initialisierungen abgeschlossen sind. Wenn Sie beispielsweise ein Datenbankreplikat haben, können Sie mithilfe einer Startprüfung auf die Initialisierung gespeicherter Daten vom Laufwerk warten.

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