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
- Melden Sie sich in der GDC Console an.
- Klicken Sie im Navigationsmenü auf Backup for Virtual Machines > Repositories.
- Klicken Sie auf Repository erstellen.
- Geben Sie einen Repository-Namen und eine optionale Beschreibung ein.
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.testFühren Sie den folgenden Befehl aus, um den Wert aus der benutzerdefinierten RessourceBucketabzurufen:kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.endpoint'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
Bucketabrufen möchten, führen Sie den folgenden Befehl aus:kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.fullyQualifiedName'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'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.
Klicken Sie auf Erstellen.
API
Erstellen Sie mit Ihren S3-Anmeldedaten eine benutzerdefinierte BackupRepository-Ressource.
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 ProjektsSA_NAME: der Name des Dienstkontos, das für den Zugriff auf den Objektspeicher verwendet wird.
Wenn Sie Bucket-Details wie FQDN und Endpunkte abrufen möchten, extrahieren Sie die Werte
fullyQualifiedNameundzonalEndpointsaus der Ausgabe:kubectl get buckets -n PROJECT_NAME BUCKET_NAME -o yamlErstellen Sie einen
BackupRepositoryauf 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_POLICYErsetzen Sie Folgendes:
REPOSITORY_NAME: der Name des Sicherungs-Repositorys.PROJECT_NAME: Name Ihres ProjektsSA_NAME: der Name des Dienstkontos, das für den Zugriff auf den Objektspeicher verwendet wird.SECRET_NAME: Der Name des Secrets, das vom Befehlkubectl get secretszurückgegeben wird.ENDPOINT: Der voll qualifizierte Domainname für das Speichersystem, z. B.https://objectstorage.google.gdch.test. Für das Feldtypewird nur der WertS3unterstü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 FeldforcePathStyle, um Pfadstil-URLs für Objekte zu erzwingen. Dieses Feld muss den Werttrueoderfalsehaben.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
BackupRepositorywird eineBackupRepository-Ressource mit Lese-/Schreibzugriff auf dem Management API-Server mit demselben Namen erstellt.