Cette page explique comment configurer un cluster d'administrateur Google Distributed Cloud (logiciel uniquement) pour VMware afin qu'il utilise Artifact Registry de Google comme registre Docker privé dans lequel vous pouvez stocker des images de charge de travail. Lorsque vous configurez un registre privé pour stocker les images de charge de travail, les images système Google Distributed Cloud sont également stockées dans le registre privé lorsque vous créez ou mettez à niveau des clusters.
Bien qu'Artifact Registry soit compatible avec plusieurs méthodes d'authentification, vous devez utiliser une clé de compte de service pour l'authentification afin d'utiliser Artifact Registry comme registre privé. Les étapes de cette page expliquent comment obtenir l'adresse, les identifiants et le certificat CA requis par la section privateRegistry du fichier de configuration du cluster d'administrateur.
Configurer un fichier d'identifiants
- Si vous n'avez pas configuré l'authentification pour le registre, suivez les étapes décrites dans Configurer l'authentification sur Artifact Registry pour Docker afin de configurer l'authentification à l'aide d'un compte de service. Vous devez utiliser un compte de service avec un fichier de clé JSON pour l'authentification. 
- Créez un fichier de configuration des identifiants, - admin-creds.yaml, comme illustré dans l'exemple suivant. La valeur- usernamedoit être- "_json_key". Vous pouvez utiliser n'importe quelle valeur pour le champ- name, à condition qu'elle corresponde à celle que vous ajouterez au champ- privateRegistry.entry.- apiVersion: v1 kind: "CredentialFile" items: - name: "private-registry-creds" username: "_json_key" password:
- Dans le répertoire où se trouve le fichier de clé JSON du compte de service du registre, exécutez - catsur le fichier de clé pour afficher le contenu.
- Copiez l'intégralité du contenu de la clé JSON et collez-le dans le champ - password. Veillez à entourer le contenu de la clé JSON de guillemets simples, car il contient des guillemets doubles. Exemple :- 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" } '
Configurer privateRegistry dans le fichier de configuration du cluster d'administrateur
Pour utiliser un registre privé, vous devez configurer la section privateRegistry lorsque vous créez le cluster d'administrateur. Une fois le cluster créé, vous ne pouvez pas modifier le privateRegistry.address, mais les autres paramètres sont modifiables et vous pouvez les mettre à jour si nécessaire.
- Exécutez la commande suivante pour obtenir l'adresse du registre : - gcloud artifacts repositories describe REGISTRY_NAME \ --project=PROJECT_ID --location=REGION- Remplacez les éléments suivants : - REGISTRY_NAME: nom du registre.
- PROJECT_ID: ID du projet dans lequel le registre a été créé.
- LOCATION: région dans laquelle le registre a été créé, par exemple- us-west2.
 - Le résultat ressemble à ce qui suit : - 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'- Utilisez la valeur - registryUridans la sortie pour- privateRegistry.address.
- Exécutez la commande suivante pour extraire le certificat CA du point de terminaison Artifact Registry et l'enregistrer dans un fichier nommé - ar-ca.pem:- true | openssl s_client -connect REGION-docker.pkg.dev:443 -showcerts 2>/dev/null| sed -ne '/-BEGIN/,/-END/p' > ar-ca.pem
- Remplissez la section - privateRegistrycomme suit :- privateRegistry: address: "REGISTRY_ADDRESS" credentials: fileRef: path: "CREDENTIAL_FILE_PATH" entry: "private-registry-creds" caCertPath: "CA_CERT_PATH" componentAccessServiceAccountKeyPath: "COMPONENT_ACCESS_KEY_PATH"- Remplacez les éléments suivants : - REGISTRY_ADDRESS: valeur pour- registryUri.
- CREDENTIAL_FILE_PATH: chemin d'accès complet ou relatif au fichier- admin-creds.yaml.
- CA_CERT_PATH: chemin d'accès complet ou relatif du fichier- ar-ca.pem.
- COMPONENT_ACCESS_KEY_PATH: chemin d'accès complet ou relatif au fichier de clé du compte de service d'accès au composant.