GKE-Cluster verliert Daten

GKE-Cluster verliert Daten

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:

  1. Verhindern Sie, dass die Daten in der Datenbank gelöscht werden
  2. 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 GKEkann ein Cluster Daten verlieren?

Ohne genaue Informationen darüber, wie die Anwendung/Arbeitslast auf einem Cluster bereitgestellt wurde, GKEkann es schwierig sein, das eigentliche Problem zu ermitteln.

Erwähnenswert sind folgende Dinge:

  • Workloads, die Daten speichern müssen (wie Datenbanken), solltenPersistent Volumes. Im Falle eines Knotenausfalls PVgehen die darauf gespeicherten Daten nicht verloren, da sie auf einer anderen Entität gespeichert werden.

PersistentVolumeRessourcen werden verwendet, um dauerhaften Speicher in einem Cluster zu verwalten. In wird GKEein PersistentVolumenormalerweise 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 keine VolumesKonfiguration vorhanden ist, gehen bei einer Pod-Neuerstellung verloren.

  • GKEAuf 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.

Cloud.google.com: Kubernetes Engine: Dokumentation: Vorgehensweise: Automatisches Node-Upgrade: Übersicht


In Bezug auf die gestellte Frage

Ich bin neu bei GCP, also entschuldigen Sie meine Unwissenheit.

Ich empfehle Ihnen, die offizielle Dokumentation von GCPund 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 GKEKnoten verwendet und sollten nicht als Speicherort für Daten verwendet werden. Sie können sie Persistent Volumeswie 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

GKECluster 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 GKEKnotens 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:

  1. Verhindern Sie, dass die Daten in der Datenbank gelöscht werden
  2. 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 GCEInstanz anstelle eines GKEClusters in Betracht ziehen. GKEist 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:


Zusätzlicher Hinweis:

verwandte Informationen