Auf dieser Seite wird beschrieben, wie Sie einen Administratorcluster von Google Distributed Cloud (nur Software) für VMware so konfigurieren, dass die Artifact Registry von Google als private Docker-Registry verwendet wird, in der Sie Arbeitslast-Images speichern können. Wenn Sie eine private Registry zum Speichern von Arbeitslast-Images konfigurieren, werden auch die System-Images der verteilten Google Cloud beim Erstellen oder Aktualisieren von Clustern in der privaten Registry gespeichert.
Artifact Registry unterstützt zwar mehrere Authentifizierungsmethoden, aber Sie müssen einen Dienstkontoschlüssel für die Authentifizierung verwenden, um Artifact Registry als private Registry zu verwenden. In den Schritten auf dieser Seite wird beschrieben, wie Sie die Adresse, die Anmeldedaten und das CA-Zertifikat abrufen, die für den Abschnitt privateRegistry
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. Sie müssen für die Authentifizierung ein Dienstkonto mit einer JSON-Schlüsseldatei verwenden.
Erstellen Sie eine Konfigurationsdatei für Anmeldedaten,
admin-creds.yaml
, wie im folgenden Beispiel dargestellt. Derusername
muss"_json_key"
lauten. Sie können jeden Wert für das Feldname
verwenden, solange er mit dem Wert übereinstimmt, den Sie dem FeldprivateRegistry.entry
hinzufü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,
cat
auf die Schlüsseldatei aus, um den Inhalt auszugeben.Kopieren Sie den gesamten Inhalt des JSON-Schlüssels und fügen Sie ihn in das Feld
password
ein. Setzen Sie den Inhalt des JSON-Schlüssels in einfache Anführungszeichen, da er 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
beim Erstellen des Admin-Clusters konfigurieren. Nachdem der Cluster erstellt wurde, können Sie die 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=REGION
Ersetzen 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 in 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
registryUri
aus der Ausgabe fürprivateRegistry.address
.Führen Sie den folgenden Befehl aus, um das Zertifikat der Zertifizierungsstelle des Artifact Registry-Endpunkts zu extrahieren und in der Datei
ar-ca.pem
zu speichern:true | openssl s_client -connect REGION-docker.pkg.dev:443 -showcerts 2>/dev/null| sed -ne '/-BEGIN/,/-END/p' > ar-ca.pem
Füllen Sie den Abschnitt
privateRegistry
so 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 zur Dateiadmin-creds.yaml
.CA_CERT_PATH
: der vollständige oder relative Pfad zur Dateiar-ca.pem
.COMPONENT_ACCESS_KEY_PATH
: der vollständige oder relative Pfad zur Schlüsseldatei des Dienstkontos für den Komponentenzugriff.