Cette page explique comment configurer un cluster administrateur Google Distributed Cloud (logiciel uniquement) pour VMware afin qu'il utilise Artifact Registry de Google comme registre Docker privé où vous pouvez stocker des images de charge de travail. Lorsque vous configurez un registre privé pour stocker des 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 en tant que registre privé. Les étapes de cette page expliquent comment obtenir l'adresse, les identifiants et le certificat d'autorité de certification 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 la procédure décrite dans la section Configurer l'authentification auprès d'Artifact Registry pour Docker pour 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 valeurusername
doit être"_json_key"
. Vous pouvez utiliser n'importe quelle valeur pour le champname
, à condition qu'elle corresponde à la valeur que vous ajouterez au champprivateRegistry.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
cat
sur le fichier de clé pour afficher le contenu.Copiez l'intégralité du contenu de la clé JSON, puis 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'administration. Une fois le cluster créé, vous ne pouvez pas modifier 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 référentiel a été créé.LOCATION
: région dans laquelle le Registre a été créé, par exempleus-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
registryUri
dans la sortie pourprivateRegistry.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
privateRegistry
comme 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 pourregistryUri
.CREDENTIAL_FILE_PATH
: chemin d'accès complet ou relatif du fichieradmin-creds.yaml
.CA_CERT_PATH
: chemin d'accès complet ou relatif du fichierar-ca.pem
.COMPONENT_ACCESS_KEY_PATH
: chemin d'accès complet ou relatif du fichier de clé du compte de service d'accès au composant.