Am 29. September wurde eine neue Version von Anthos-Cluster auf AWS (GKE in AWS) veröffentlicht. Weitere Informationen siehe Versionshinweise.

Nutzercluster in AWS sichern

Auf dieser Seite wird gezeigt, wie Sie den etcd-Datenspeicher für Ihre Anthos-Cluster in AWS-Installation (GKE on AWS) sichern, um die Wiederherstellung nach Ereignissen zu ermöglichen, die die etcd-Daten Ihres Clusters beschädigen könnten.

Beschränkungen

  • Die Verwendung einer Sicherungsdatei zum Wiederherstellen Ihrer etcd-Daten sollte das letzte Mittel sein. Wir empfehlen die Wiederherstellung aus einer Sicherungsdatei nur, wenn der Cluster vollständig fehlerhaft ist. Wenden Sie sich an den Google-Support, wenn Sie Hilfe bei der Entscheidung benötigen.

  • Bei diesem Verfahren werden keine Daten von Ihren Arbeitslasten gesichert, einschließlich PersistentVolumes.

  • Mit dieser Sicherung kann ein Cluster nicht aus einer anderen Version von Anthos-Cluster in AWS wiederhergestellt werden.

Nutzercluster sichern

Eine Nutzercluster-Sicherung ist ein Snapshot des etcd-Speichers des Nutzerclusters. Der etcd-Speicher enthält alle Kubernetes-Objekte und benutzerdefinierten Objekte, die den Status des Clusters darstellen. Der Snapshot enthält die Daten, die zum Neuerstellen der zustandslosen Arbeitslasten des Clusters erforderlich sind.

Führen Sie die folgenden Schritte aus, um einen Snapshot des etcd-Datenspeichers zu erstellen:

  1. Öffnen Sie eine Shell auf der Verwaltungsdienstinstanz, auf der etcd für Ihren Cluster ausgeführt wird.

    1. Suchen Sie die IP-Adresse der Verwaltungsdienstinstanz Ihres Clusters.

      export CLUSTER_ID=$(terraform output cluster_id)
      export MANAGEMENT_IP=$(aws ec2 describe-instances \
        --filters "Name=tag:Name,Values=$CLUSTER_ID-management-0" \
        --query "Reservations[*].Instances[*].PrivateIpAddress" \
        --output text)
      
    2. Verwenden Sie das ssh-Tool, um eine Verbindung zur Verwaltungsdienstinstanz zu öffnen.

      Direkte Verbindung

      ssh -i ~/.ssh/anthos-gke ubuntu@$MANAGEMENT_IP
      

      Bastion Host

      export BASTION_DNS=$(terraform output bastion_dns_name)
      ssh -i ~/.ssh/anthos-gke -J ubuntu@$BASTION_DNS ubuntu@$MANAGEMENT_IP
      
  2. Erstellen Sie ein Verzeichnis zum Speichern der etcd-Sicherungsdaten.

    mkdir ./etcd-backups
    
  3. Verwenden Sie das ps-Befehlszeilentool, um die Prozess-ID des etcd-Prozesses auf dieser Instanz zu finden.

    ps -e | grep etcd
    

    Die Ausgabe enthält Details zu Ihrem etcd-Prozess. Das erste Element ist die Prozess-ID von etcd. Ersetzen Sie in den folgenden Schritten ETCD_PID durch diese Prozess-ID.

  4. Erstellen Sie ein Skript im Dateisystem des etcd-Containers, um einen Snapshot zu erstellen. Dieses Skript führt etcdctl aus, um eine Verbindung zum etcd-Daemon herzustellen, und führt einen Snapshot zum Sichern der etcd-Datenbank aus.

    cat << EOT > /tmp/etcdbackup.sh
    # Extract a snapshot of the anthos-gke etcd state database
    
    export ETCDCTL_API=3
    
    etcdctl \
     --endpoints=https://127.0.0.1:2379 \
     --cacert=/secrets/server-ca.crt \
     --cert=/secrets/server.crt \
     --key=/secrets/server.key \
     snapshot save /tmp/snapshot.db
    EOT
    
    chmod a+x /tmp/etcdbackup.sh
    sudo mv /tmp/etcdbackup.sh /proc/ETCD_PID/root/tmp/etcdbackup.sh
    
  5. Führen Sie das Skript mit dem Befehl nsenter im etcd-Container aus, um den Snapshot zu erstellen.

    sudo nsenter --all --target ETCD_PID /tmp/etcdbackup.sh
    
  6. Kopieren Sie die Snapshot-Datei aus dem etcd-Container.

    sudo cp /proc/ETCD_PID/root/tmp/snapshot.db ./etcd-backups
    
  7. Kopieren Sie alle Dateien im Verzeichnis /secrets des etcd-Containers in Ihr Sicherungsverzeichnis. Diese Dateien enthalten die Zertifikate, die die Kommunikation zwischen etcd und anderen Prozessen im Cluster verschlüsseln und validieren. Die Snapshot-Datei und die Zertifikatsdateien stellen zusammen eine vollständige Sicherung des etcd-Clusterstatus dar.

    sudo cp -r /proc/ETCD_PID/root/secrets ./etcd-backups
    
  8. Verwenden Sie das tar-Tool, um die etcd-Sicherungsdateien in einer praktischen TAR-Datei zu bündeln.

    tar -cvf etcd-backup.tar etcd-backup
    
  9. Verlassen Sie Ihren lokalen Computer und kopieren Sie die Datei etcd-backup.tar mit dem scp-Tool aus der Verwaltungsdienstinstanz. In diesem Beispiel werden die zuvor definierten Umgebungsvariablen BASTION_DNS und MANAGEMENT_IP verwendet.

    scp -i ~/.ssh/anthos-gke -J ubuntu@$BASTION_DNS \
     ubuntu@$MANAGEMENT_IP:~/etcd-backup/backup.tar
    

Weitere Informationen