Sicherungsrepository erstellen

Auf dieser Seite wird beschrieben, wie Sie ein Sicherungs-Repository für virtuelle Maschinen (VMs) in Google Distributed Cloud (GDC) mit Air Gap erstellen.

Bevor Sie Sicherungen oder Snapshots erstellen, müssen Sie mindestens ein Sicherungs-Repository definieren, das für mehrere Sicherungen oder Snapshots freigegeben werden kann. Ein Sicherungs-Repository gibt dem Sicherungssystem an, wo Sicherungen gespeichert oder abgerufen werden sollen. Sicherungs-Repositories für VMs sind auf den Management API-Server beschränkt.

Hinweise

Bevor Sie ein Sicherungs-Repository erstellen, müssen Sie den zugrunde liegenden Speicher bereitstellen und die erforderlichen Berechtigungen konfigurieren, darunter:

  • Ein Objektspeicher-Bucket und ein S3-kompatibler Endpunkt.
  • Ein Dienstkonto mit Zugriff auf den Bucket und die zugehörigen S3-Anmeldedaten.
  • Die erforderlichen IAM-Rollen:

    • Organisationsadministrator für Sicherungen: Verwaltet Sicherungsressourcen wie Sicherungs- und Wiederherstellungspläne in Nutzerclustern.
    • Secret Viewer: Zeigt Kubernetes-Secrets in Projekten an.

    Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rollen „Organisations-Backup-Administrator“ (organization-backup-admin) und „Secret-Betrachter“ (secret-viewer) zuzuweisen. Weitere Informationen finden Sie unter Rollendefinitionen.

Sicherungs-Repository erstellen

Erstellen Sie ein Repository mit der GDC Console oder der API.

Console

  1. Melden Sie sich in der GDC Console an.
  2. Klicken Sie im Navigationsmenü auf Backup for Virtual Machines > Repositories.
  3. Klicken Sie auf Repository erstellen.
  4. Geben Sie einen Repository-Namen und eine optionale Beschreibung ein.
  5. Geben Sie im Feld S3-URI-Endpunkt einen Endpunkt mit dem vollständig qualifizierten Domainnamen Ihrer Objektspeicherwebsite ein, z. B. https://objectstorage.ORG.ZONE.DOMAIN.SUFFIX:PORT. Beispiel: https://objectstorage.org-1.zone1.google.gdch.test Führen Sie den folgenden Befehl aus, um den Wert aus der benutzerdefinierten Ressource Bucket abzurufen:

    kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.endpoint'
    
  6. Geben Sie im Feld Bucket-Name den vollständig qualifizierten Domainnamen des Buckets ein. Sie können diesen Namen in der GDC-Konsole auf der Seite Bucket-Details abrufen. Wenn Sie den Wert aus der benutzerdefinierten Ressource Bucket abrufen möchten, führen Sie den folgenden Befehl aus:

    kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.fullyQualifiedName'
    
  7. Geben Sie im Feld Bucket-Region die Region ein, in der der Bucket erstellt wurde. Rufen Sie den Wert aus der benutzerdefinierten Bucket-Ressource ab, indem Sie den folgenden Befehl ausführen:

    kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.region'
    
  8. Geben Sie in die Felder Access Key ID (Zugriffsschlüssel-ID) und Access key (Zugriffsschlüssel) die Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel ein. Weitere Informationen zum Abrufen dieser Anmeldedaten finden Sie unter Zugriff auf Speicher-Bucket erteilen und abrufen.

  9. Klicken Sie auf Erstellen.

API

Erstellen Sie mit Ihren S3-Anmeldedaten eine benutzerdefinierte BackupRepository-Ressource.

  1. Rufen Sie den Namen des Secrets ab, das S3-Anmeldedaten enthält:

    export PROJECT_NAME=PROJECT_NAME
    export SA_NAME=SA_NAME
    kubectl get secrets --namespace $PROJECT_NAME -o json | jq -r --arg USER_NAME "${SA_NAME:?}" '.items[] | select( (.metadata.annotations."object.gdc.goog/subject"==$USER_NAME)) | .metadata.name'
    

    Notieren Sie sich den vom Befehl zurückgegebenen Secret-Namen und verwenden Sie ihn im nächsten Schritt als SECRET_NAME.

    Ersetzen Sie Folgendes:

    • PROJECT_NAME: Name Ihres Projekts
    • SA_NAME: der Name des Dienstkontos, das für den Zugriff auf den Objektspeicher verwendet wird.
  2. Wenn Sie Bucket-Details wie FQDN und Endpunkte abrufen möchten, extrahieren Sie die Werte fullyQualifiedName und zonalEndpoints aus der Ausgabe:

    kubectl get buckets -n PROJECT_NAME BUCKET_NAME -o yaml
    
  3. Erstellen Sie einen BackupRepository auf dem Management API-Server:

    apiVersion: backup.gdc.goog/v1
    kind: BackupRepository
    metadata:
      name: REPOSITORY_NAME
    spec:
      secretReference:
        namespace: PROJECT_NAME
        name: SECRET_NAME
      endpoint: ENDPOINT
      type: "S3"
      s3Options:
        bucket: BUCKET_FQDN
        region: REGION
        forcePathStyle: FORCE_PATH_STYLE
      importPolicy: IMPORT_POLICY
    

    Ersetzen Sie Folgendes:

    • REPOSITORY_NAME: der Name des Sicherungs-Repositorys.
    • PROJECT_NAME: Name Ihres Projekts
    • SA_NAME: der Name des Dienstkontos, das für den Zugriff auf den Objektspeicher verwendet wird.
    • SECRET_NAME: Der Name des Secrets, das vom Befehl kubectl get secrets zurückgegeben wird.
    • ENDPOINT: Der voll qualifizierte Domainname für das Speichersystem, z. B. https://objectstorage.google.gdch.test. Für das Feld type wird nur der Wert S3 unterstützt.
    • BUCKET_FQDN: Der vollständig qualifizierte Name des Buckets.
    • REGION: die Region, in der der Bucket erstellt wurde.
    • FORCE_PATH_STYLE: Verwenden Sie das Feld forcePathStyle, um Pfadstil-URLs für Objekte zu erzwingen. Dieses Feld muss den Wert true oder false haben.
    • IMPORT_POLICY: Legen Sie dafür Folgendes fest:
      • ReadWrite: Dieses Repository kann zum Planen oder Erstellen von Sicherungen, Sicherungsplänen und Wiederherstellungen verwendet werden.
      • ReadOnly: Dieses Repository kann nur zum Importieren und Anzeigen von Sicherungen verwendet werden. In diesem Repository können keine neuen Sicherungen oder Ressourcen erstellt werden. Bei der Wiederherstellung können jedoch schreibgeschützte Sicherungen verwendet und referenziert werden. Es gibt keine Einschränkung, wie oft ein Sicherungs-Repository als „ReadOnly“ verwendet werden kann.

    Mit BackupRepository wird eine BackupRepository-Ressource mit Lese-/Schreibzugriff auf dem Management API-Server mit demselben Namen erstellt.

Nächste Schritte