Auf dieser Seite wird beschrieben, wie Sie einen Administratorcluster von Google Distributed Cloud (nur Software) für VMware so konfigurieren, dass er die Artifact Registry von Google als private Docker-Registry verwendet, in der Sie Arbeitslast-Images speichern können. Wenn Sie eine private Registry zum Speichern von Arbeitslast-Images konfigurieren, werden die System-Images von Google Distributed Cloud auch in der privaten Registry gespeichert, wenn Sie Cluster erstellen oder aktualisieren.
Artifact Registry unterstützt zwar mehrere verschiedene
Authentifizierungsmethoden,
Sie müssen jedoch einen Dienstkontoschlüssel für die Authentifizierung verwenden, um Artifact Registry als
private Registry zu nutzen. In den Schritten auf dieser Seite wird erläutert, wie Sie die Adresse, Anmeldedaten und das CA-Zertifikat abrufen, die für den privateRegistry Abschnitt in der Konfigurationsdatei des Administratorclusters erforderlich sind.
Anmeldedatendatei konfigurieren
Wenn Sie die Authentifizierung für die Registry noch nicht konfiguriert haben, folgen Sie der Anleitung unter Authentifizierung bei Artifact Registry für Docker konfigurieren , um die Authentifizierung mit einem Dienstkonto zu konfigurieren. Für die Authentifizierung müssen Sie ein Dienstkonto mit einer JSON-Schlüsseldatei verwenden.
Erstellen Sie eine Konfigurationsdatei für Anmeldedaten,
admin-creds.yaml, wie im folgenden Beispiel gezeigt. Derusernamemuss"_json_key"sein. Sie können einen beliebigen Wert für das Feldnameverwenden, solange er mit dem Wert übereinstimmt, den Sie dem FeldprivateRegistry.entryhinzufügen.apiVersion: v1 kind: "CredentialFile" items: - name: "private-registry-creds" username: "_json_key" password:Führen Sie im Verzeichnis, in dem sich die JSON-Schlüsseldatei für das Dienstkonto der Registry befindet,
catfür die Schlüsseldatei aus, um den Inhalt auszugeben.Kopieren Sie den gesamten JSON-Schlüsselinhalt und fügen Sie ihn in das Feld
passwordein. Setzen Sie den JSON-Schlüsselinhalt in einfache Anführungszeichen, da der Inhalt doppelte Anführungszeichen enthält. Beispiel:apiVersion: v1 kind: "CredentialFile" items: - name: "private-registry-creds" username: "_json_key" password: '{ "type": "service_account", "project_id": "example-project-12345", "private_key_id": "d2661ccb21e686658c6552cf1e0166b857091b2e", "private_key": "-----BEGIN PRIVATE ... -----END PRIVATE KEY-----\n", "client_email": "test-537@example-project-12345.iam.gserviceaccount.com", "client_id": "111772984510027821291", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/test-537%40example-project-12345.iam.gserviceaccount.com", "universe_domain": "googleapis.com" } '
privateRegistry in der Konfigurationsdatei des Administratorclusters konfigurieren
Wenn Sie eine private Registry verwenden möchten, müssen Sie den Abschnitt privateRegistry konfigurieren, wenn Sie den Administratorcluster erstellen. Nachdem der Cluster erstellt wurde, können Sie privateRegistry.address nicht mehr ändern. Die anderen Einstellungen sind jedoch veränderbar und können bei Bedarf aktualisiert werden.
Führen Sie den folgenden Befehl aus, um die Registry-Adresse abzurufen:
gcloud artifacts repositories describe REGISTRY_NAME \ --project=PROJECT_ID --location=REGIONErsetzen Sie Folgendes:
REGISTRY_NAME: der Name der Registry.PROJECT_ID: die ID des Projekts, in dem die Registry erstellt wurde.LOCATION: die Region, in der die Registry erstellt wurde, z. B.us-west2.
Die Ausgabe sieht etwa so aus:
Encryption: Google-managed key Repository Size: 0.000MB cleanupPolicyDryRun: true createTime: '2025-01-28T03:27:57.701672Z' dockerConfig: {} format: DOCKER mode: STANDARD_REPOSITORY name: projects/example-project-12345/locations/us-west2/repositories/test registryUri: us-west2-docker.pkg.dev/example-project-12345/test satisfiesPzi: true updateTime: '2025-01-28T03:27:57.701672Z' vulnerabilityScanningConfig: enablementConfig: INHERITED enablementState: SCANNING_ACTIVE lastEnableTime: '2025-01-28T03:27:49.385246079Z'Verwenden Sie den Wert
registryUriin der Ausgabe fürprivateRegistry.address.Führen Sie den folgenden Befehl aus, um das CA-Zertifikat des Artifact Registry-Endpunkts zu extrahieren und in einer Datei namens
ar-ca.pemzu speichern:true | openssl s_client -connect REGION-docker.pkg.dev:443 -showcerts 2>/dev/null| sed -ne '/-BEGIN/,/-END/p' > ar-ca.pemFüllen Sie den Abschnitt
privateRegistryso aus:privateRegistry: address: "REGISTRY_ADDRESS" credentials: fileRef: path: "CREDENTIAL_FILE_PATH" entry: "private-registry-creds" caCertPath: "CA_CERT_PATH" componentAccessServiceAccountKeyPath: "COMPONENT_ACCESS_KEY_PATH"Ersetzen Sie Folgendes:
REGISTRY_ADDRESS: der WertregistryUri.CREDENTIAL_FILE_PATH: der vollständige oder relative Pfad der Dateiadmin-creds.yaml.CA_CERT_PATH: der vollständige oder relative Pfad der Dateiar-ca.pem.COMPONENT_ACCESS_KEY_PATH: der vollständige oder relative Pfad der Schlüsseldatei des Dienstkontos für den Komponentenzugriff.