En esta página se describe cómo configurar un Google Distributed Cloud (solo software) para que un clúster de administrador de VMware use Artifact Registry de Google como registro privado de Docker en el que 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.
Aunque Artifact Registry admite varios métodos de autenticación,
debes usar una clave de cuenta de servicio para autenticarte y usar Artifact Registry como registro privado. En esta página se explica cómo obtener la dirección, las credenciales y el certificado de AC que se requieren en la sección privateRegistry
del archivo de configuración del clúster de administrador.
Configurar un archivo de credenciales
Si no has configurado la autenticación para el registro, sigue los pasos que se indican en Configurar la autenticación en Artifact Registry para Docker para configurar la autenticación con una cuenta de servicio. Para la autenticación, debes usar una cuenta de servicio con un archivo de clave JSON.
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 en el camponame
, siempre que coincida con el valor que añadas 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 clave JSON de la cuenta de servicio del registro, ejecuta
cat
en el archivo de clave para mostrar 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 contiene 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" } '
Configurar privateRegistry
en el archivo de configuración del clúster de administrador
Para usar un registro privado, debe configurar la sección privateRegistry
al crear el clúster de administrador. Una vez creado el clúster, no podrás cambiar el privateRegistry.address
, pero el resto de los ajustes se pueden modificar 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
Haz los cambios siguientes:
REGISTRY_NAME
: el nombre del registro.PROJECT_ID
: el ID del proyecto en el que se creó el registro.LOCATION
: la región en la que se creó el registro, comous-west2
.
El resultado debería ser similar al siguiente:
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 la AC del endpoint 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
Rellena 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"
Haz los cambios siguientes:
REGISTRY_ADDRESS
: el valor deregistryUri
.CREDENTIAL_FILE_PATH
: la ruta completa o relativa del archivoadmin-creds.yaml
.CA_CERT_PATH
: la ruta completa o relativa del archivoar-ca.pem
.COMPONENT_ACCESS_KEY_PATH
: la ruta completa o relativa del archivo de clave de la cuenta de servicio de acceso al componente.