Blog

Etcd Cluster Sicherung und Wiederherstellung für Kubernetes

Bild von Boyan Kirov
Bojan Kirow
DevOps- und Cloud-Ingenieur
08.12.2023
Lesezeit: 3 Minuten.
Zuletzt aktualisiert am: 04.03.2025

Inhaltsübersicht

In Unix-ähnlichen Betriebssystemen enthält der Ordner /etc wichtige Konfigurationsdaten. Im Bereich von Kubernetes spielt Etcd eine ähnlich wichtige Rolle. Dabei handelt es sich um einen Key-Value-Datenspeicher, in dem sowohl Konfigurationsdaten als auch Cluster-Informationen gespeichert werden. Der Name "Etcd" ist eine Anspielung auf den /etc-Ordner, mit einem zusätzlichen "d" als Symbol für verteilte Systeme.

Etcd ist der Eckpfeiler Ihres Kubernetes-Clusters und speichert Daten, die für die Service-Erkennung und die Cluster-Verwaltung wichtig sind. Die Sicherung Ihrer Etcd-Daten durch regelmäßige Backups ist von entscheidender Bedeutung für die Vorbereitung auf unvorhergesehene Ausfälle. In diesem Artikel führen wir Sie durch den Prozess der sicheren Sicherung und Wiederherstellung Ihres Etcd-Clusters in einer Kubernetes-Umgebung mithilfe des leistungsstarken Tools etcdctl.

Etcd Cluster Sicherung und Wiederherstellung für Kubernetes

Sichern Ihres Etcd-Clusters

  1. Überprüfen Sie die Installation von etcdctl: Stellen Sie zunächst sicher, dass Sie etcdctl auf Ihrem System installiert haben. Führen Sie den folgenden Befehl aus, um dies zu überprüfen:
etcdctl version

Wenn etcdctl korrekt installiert ist, erhalten Sie eine Ausgabe, die die Version angibt. Wenn nicht, erhalten Sie die Fehlermeldung "Befehl nicht gefunden".

2. Installieren Sie etcdctl (falls erforderlich): Wenn etcdctl fehlt, folgen Sie den Installationsanweisungen unter der URL. Detaillierte Anleitungen sind für Linux, MacOS und Docker verfügbar.

3. Sammeln Sie Informationen: Nachdem Sie etcdctl zur Verfügung haben, besteht der nächste Schritt darin, die notwendigen Informationen zu beschaffen, um den Sicherungsprozess zu starten. Sie benötigen:

  • Endpunkt-Informationen: Bestimmen Sie die Endpunkte für Etcd. Wenn Etcd auf demselben Server läuft, ist der Standardendpunkt https://127.0.0.1:2379. Wenn sich Etcd auf einem anderen Server befindet, ersetzen Sie 127.0.0.1 durch die IP-Adresse des Servers.
  • Bescheinigungen: Sie benötigen die folgenden Zertifikate für die Authentifizierung:
  • -cert
  • -cacert
  • -Schlüssel

Rufen Sie mit diesem Befehl Endpunktinformationen ab:

cat /etc/kubernetes/manifests/etcd.yaml | grep liste

Für Informationen über Zertifikate:

cat /etc/kubernetes/manifests/etcd.yaml | grep file

4. Ausführen des Befehls Snapshot speichern: Mit den erforderlichen Informationen ausgestattet, können Sie den Befehl zum Speichern des Snapshots mit etcdctl ausführen:

ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
--cert=/etc/kubernetes/pki/etcd/server.crt \
--key=/etc/kubernetes/pki/etcd/server.key \
snapshot save <backup-file-location>

Stellen Sie sicher, dass Sie ETCDCTL_API=3 an den Anfang des Befehls stellen. Dadurch wird sichergestellt, dass etcdctl standardmäßig die v3-API verwendet.

5. Umgebungsvariable setzen (optional): Wenn Sie es vorziehen, die API-Version nicht bei jedem Befehl anzugeben, setzen Sie die Umgebungsvariable mit:

export ETCDCTL_API=3

6. Bestätigen Sie die Sicherung: Nachdem Sie den Befehl snapshot save ausgeführt haben, haben Sie erfolgreich eine Sicherung mit dem Namen etcd-backup.db erstellt. Die letzte Zeile der Ausgabe sollte dies mit der Meldung "snapshot saved at etcd-backup.db" bestätigen.

Etcd Cluster Sicherung und Wiederherstellung für Kubernetes

Wiederherstellung von Etcd aus dem Snapshot

Bevor wir uns mit dem Wiederherstellungsprozess befassen, sollten wir kurz die ersten Schritte besprechen, um den Übergang reibungsloser zu gestalten.

  1. Überprüfen Sie Pods: Überprüfen Sie die Pods im Standard-Namespace. Wie Sie während des Backup-Prozesses festgestellt haben, wurden keine neuen Pods erstellt, und es sollten keine Ressourcen vorhanden sein.
  2. Erstellen Sie einen neuen Pod: Um die Auswirkungen des Wiederherstellungsprozesses zu demonstrieren, erstellen Sie einen neuen Pod mit:
 kubectl run newpod --image=nginx

3. Beginn der Wiederherstellung: Angenommen, Etcd ist ausgefallen und Sie müssen zum letzten gespeicherten Zustand zurückkehren. Sie verfügen über den zuvor gespeicherten etcd-backup.db-Snapshot.

4. Wiederherstellen mit etcdctl: Um den gespeicherten Snapshot wiederherzustellen, verwenden Sie einen ähnlichen Befehl wie bei der Sicherung, geben aber diesmal ein neues Datenverzeichnis an, in das die Clusterdaten kopiert werden:

ETCDCTL_API=3 etcdctl --data-dir="/var/lib/etcd-backup" \
--endpoints=https://127.0.0.1:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
--cert=/etc/kubernetes/pki/etcd/server.crt \
--key=/etc/kubernetes/pki/etcd/server.key \
snapshot restore etcd-backup.db

5. Etcd-Manifest bearbeiten: Wenn die Daten wiederhergestellt sind, müssen Sie die Manifestdatei des Etcd-Pods ändern, um das neue wiederhergestellte Datenverzeichnis als Volume zu verwenden. Öffnen Sie die Etcd-Manifestdatei zur Bearbeitung:

vi /etc/kubernetes/manifests/etcd.yaml

Ändern Sie die entsprechenden Abschnitte in der Datei etcd.yaml.

6. Warten Sie auf den Neustart des Pods: Warten Sie ein paar Minuten, bis der Etcd-Pod mit dem neuen Status neu gestartet ist. Während dieser Zeit erhalten Sie möglicherweise keine Antworten vom API-Server.

7. Überprüfen Sie die Wiederherstellung: Um eine erfolgreiche Wiederherstellung sicherzustellen, überprüfen Sie die Pods im Standard-Namensraum. Wenn Sie ursprünglich einen neuen Pod erstellt haben, sollte dieser nach der Wiederherstellung nicht mehr existieren. Verwenden Sie zur Überprüfung den folgenden Befehl:

kubectl get pods

Herzlichen Glückwunsch! Sie haben Ihren Etcd-Cluster mit einem Backup effektiv gesichert und gezeigt, dass Sie in der Lage sind, es wiederherzustellen, um Ihre Kubernetes-Umgebung vor unerwarteten Ausfällen zu schützen.

Informieren Sie sich über unsere Kubernetes Services.

Eine Antwort hinterlassen

Newsletter für Tech-Experten

Signal, kein Rauschen –

direkt in Ihren Posteingang.

Schließen Sie sich mehr als 12.000 Ingenieuren und Führungskräften aus der Wirtschaft an, die Praxisberichte zu SRE, DevOps und Cloud-nativer Zuverlässigkeit erhalten.

Tech-Blogs mit tiefgehenden Einblicken und Fallstudien
Neue Technologien, sorgfältig ausgewählt

Ihre geschäftliche E-Mail-Adresse

Wir gehen respektvoll mit Ihrem Posteingang um. Lesen Sie unsere Datenschutzerklärung.

Mehr Beiträge

Von Warnmeldungen zu Vorfällen: Ein Knoten in einem Kubernetes-Cluster fällt aus! Innerhalb von 90 Sekunden hat der Alert Manager eine Knotenwarnung, ein Dutzend Pod-Warnungen und eine Handvoll …
Lesen
Jeder Anbieter von Observability-Lösungen hat mittlerweile etwas im Angebot, das als „AI SRE“ bezeichnet wird. Cloud-Anbieter haben eines. Plattformen für das Incident-Management haben eines. Ihr Monitoring-Tool hat wahrscheinlich im letzten Quartal eines hinzugefügt. Die Frage für die meisten...
Lesen
Kontakt aufnehmen
ITGix bietet Ihnen fachkundige Beratung und maßgeschneiderte DevOps-Services, um Ihr Unternehmenswachstum zu beschleunigen.
Newsletter für
Technik-Experten
Schließen Sie sich 12.000+ Geschäftsführern und Ingenieuren an, die Blogs, e-Books und Fallstudien Fallstudien über neue Technologie erhalten.