En esta página, se describe cómo configurar un clúster de administrador de VMware de Google Distributed Cloud (solo software) para usar el Artifact Registry de Google como el registro privado de Docker en el que puedes almacenar imágenes de cargas de trabajo. Cuando configuras un registro privado para almacenar imágenes de cargas de trabajo, las imágenes del sistema de Google Distributed Cloud también se almacenan en el registro privado cuando creas o actualizas clústeres.
Si bien Artifact Registry admite varios métodos de autenticación diferentes, debes usar una clave de cuenta de servicio para autenticarte y usar Artifact Registry como registro privado. En los pasos de esta página, se explica cómo obtener la dirección, las credenciales y el certificado de la CA que requiere la sección privateRegistry
del archivo de configuración del clúster de administrador.
Configura un archivo de credenciales
Si no configuraste la autenticación para el registro, sigue los pasos que se indican en Configura la autenticación en Artifact Registry para Docker para configurar la autenticación con una cuenta de servicio. Debes usar una cuenta de servicio con un archivo de clave JSON para la autenticación.
Crea un archivo de configuración de credenciales,
admin-creds.yaml
, como se muestra en el siguiente ejemplo. Elusername
debe ser"_json_key"
. Puedes usar cualquier valor para el camponame
, siempre y cuando coincida con el valor que agregarás al campoprivateRegistry.entry
.apiVersion: v1 kind: "CredentialFile" items: - name: "private-registry-creds" username: "_json_key" password:
En el directorio donde se encuentra el archivo de claves JSON de la cuenta de servicio del registro, ejecuta
cat
en el archivo de claves para generar el contenido.Copia todo el contenido de la clave JSON y pégalo en el campo
password
. Asegúrate de incluir el contenido de la clave JSON entre comillas simples, ya que el contenido incluye comillas dobles. Por ejemplo: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" } '
Configura privateRegistry
en el archivo de configuración del clúster de administrador
Para usar un registro privado, debes configurar la sección privateRegistry
cuando crees el clúster de administrador. Después de crear el clúster, no puedes cambiar el privateRegistry.address
, pero los demás parámetros de configuración son mutables y puedes actualizarlos si es necesario.
Ejecuta el siguiente comando para obtener la dirección del registro:
gcloud artifacts repositories describe REGISTRY_NAME \ --project=PROJECT_ID --location=REGION
Reemplaza lo siguiente:
REGISTRY_NAME
: Es el nombre del registro.PROJECT_ID
: Es el ID del proyecto en el que se creó el registro.LOCATION
: Es la región en la que se creó el registro, comous-west2
.
El resultado es similar a este:
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'
Usa el valor de
registryUri
en el resultado deprivateRegistry.address
.Ejecuta el siguiente comando para extraer el certificado de CA del extremo de Artifact Registry y guárdalo en un archivo llamado
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
Completa la sección
privateRegistry
de la siguiente manera:privateRegistry: address: "REGISTRY_ADDRESS" credentials: fileRef: path: "CREDENTIAL_FILE_PATH" entry: "private-registry-creds" caCertPath: "CA_CERT_PATH" componentAccessServiceAccountKeyPath: "COMPONENT_ACCESS_KEY_PATH"
Reemplaza lo siguiente:
REGISTRY_ADDRESS
: Es el valor deregistryUri
.CREDENTIAL_FILE_PATH
: Es la ruta de acceso completa o relativa del archivoadmin-creds.yaml
.CA_CERT_PATH
: Es la ruta de acceso completa o relativa del archivoar-ca.pem
.COMPONENT_ACCESS_KEY_PATH
: Es la ruta de acceso completa o relativa del archivo de claves de la cuenta de servicio de acceso a componentes.