![GKE-Cluster verliert Daten](https://rvso.com/image/761000/GKE-Cluster%20verliert%20Daten.png)
Ich bin neu bei GCP, also entschuldigen Sie meine Unwissenheit.
Ich habe einen GKE-Cluster mit 3 Knoten, auf dem eine Datenbankanwendung läuft. Jedem Knoten ist eine 100 GB große persistente Standardfestplatte zugewiesen. Allerdings stelle ich immer wieder fest (ist seit August mindestens dreimal passiert), dass beim Hochfahren die Daten verloren gehen und alle eingerichteten Firewall-Regeln auf die Standardeinstellungen zurückgesetzt werden.
Wie kann ich:
- Verhindern Sie, dass die Daten in der Datenbank gelöscht werden
- Verhindern Sie, dass die Firewall-Regeln zurückgesetzt werden
Liegt dies an der Modernisierung der Infrastruktur?
Antwort1
Das Posten dieser Antwort als Community-Wiki zum zugrunde liegenden Thema der Frage könnte etwas zu weit gehen.
Fühlen Sie sich frei, es zu erweitern.
Warum GKE
kann ein Cluster Daten verlieren?
Ohne genaue Informationen darüber, wie die Anwendung/Arbeitslast auf einem Cluster bereitgestellt wurde, GKE
kann es schwierig sein, das eigentliche Problem zu ermitteln.
Erwähnenswert sind folgende Dinge:
- Workloads, die Daten speichern müssen (wie Datenbanken), sollten
Persistent Volumes
. Im Falle eines KnotenausfallsPV
gehen die darauf gespeicherten Daten nicht verloren, da sie auf einer anderen Entität gespeichert werden.
PersistentVolume
Ressourcen werden verwendet, um dauerhaften Speicher in einem Cluster zu verwalten. In wirdGKE
einPersistentVolume
normalerweise durch eine persistente Festplatte unterstützt.Cloud.google.com: Kubernetes Engine: Dokumente: Konzepte: Persistente Volumes
Es gibt eine Anleitung zum Bereitstellen von WordPress auf GKE mit Persistent Disks und Cloud SQL. Sie kann als Beispiel für die Bereitstellung von Workloads mit PVC
(Persistent Disk) verwendet werden:
Auf diesem Pod gespeicherte Daten
Pods
, für die keineVolumes
Konfiguration vorhanden ist, gehen bei einer Pod-Neuerstellung verloren.GKE
Auf der Startdiskette eines Knotens gespeicherte Daten bleiben bei Aktualisierungen nicht erhalten.
Änderungen auf der Startdiskette einer Knoten-VM bleiben bei Knotenneuerstellungen nicht erhalten.Um Änderungen bei der Knotenneuerstellung beizubehalten, verwenden Sie ein DaemonSet.
In Bezug auf die gestellte Frage
Ich bin neu bei GCP, also entschuldigen Sie meine Unwissenheit.
Ich empfehle Ihnen, die offizielle Dokumentation von GCP
und zu lesen GKE
. Sie finden dort zahlreiche Informationen/Anleitungen und Beispiele, denen Sie folgen können:
Jedem Knoten ist eine persistente Standardfestplatte mit 100 GB zugewiesen.
Diese Festplatten werden speziell als Startfestplatten für einen GKE
Knoten verwendet und sollten nicht als Speicherort für Daten verwendet werden. Sie können sie Persistent Volumes
wie oben erwähnt verwenden oder sich für eine lokale SSD entscheiden, über die Sie unter dem folgenden Link mehr erfahren können:
Allerdings stelle ich immer wieder fest (ist seit August mindestens dreimal passiert), dass ich hochfahre und die Daten verloren gehen
GKE
Cluster und Knoten können nicht ausgeschaltet werden. Was Sie tun können, ist, die Anzahl der Knoten in einem Knotenpool zu reduzieren (skalieren). Meinten Sie damit, dass Sie eine Verbindung damit herstellen?
Sämtliche eingerichteten Firewall-Regeln werden auf die Standardeinstellungen zurückgesetzt.
Sie sollten die Firewall-Regeln eines GKE
Knotens nicht neu konfigurieren. Stattdessen sollten Sie die GCP-Firewall verwenden, die sich unter Cloud Console
(Web-Benutzeroberfläche) -> VPC Network
-> befindet Firewall
. Eine Knotenneuerstellung aufgrund eines Knoten-Upgrades oder -Fehlers setzt die Firewall-Regeln zurück.
Wie kann ich:
- Verhindern Sie, dass die Daten in der Datenbank gelöscht werden
- Verhindern Sie, dass die Firewall-Regeln zurückgesetzt werden
Liegt dies an der Modernisierung der Infrastruktur?
Sie könnten (abhängig von Ihrem genauen Anwendungsfall) die Verwendung der GCE
Instanz anstelle eines GKE
Clusters in Betracht ziehen. GKE
ist ein verwalteter Kubernetes-Cluster, der zum Ausführen von Container-Workloads entwickelt wurde, und einige Teile davon werden von Google verwaltet (wie beispielsweise die Steuerebene).
Was die Aktualisierung der Infrastruktur betrifft, können Sie sich unter den folgenden Links ansehen, was bei der Aktualisierung eines Clusters passiert:
- Cloud.google.com: Kubernetes Engine: Dokumente: Konzepte: Cluster-Upgrades
- Cloud.google.com: Kubernetes Engine: Dokumente: Konzepte: Vorgehensweise: Aktualisieren eines Clusters
Zusätzlicher Hinweis:
- Kubernetes.io
- Cloud.google.com: SQL<- alternative Lösung zur Ausführung
DB
in GCP