Nesta página, descrevemos como configurar um cluster de administrador do Google Distributed Cloud (somente software) para VMware para usar o Artifact Registry do Google como o registro privado do Docker em que você pode armazenar imagens de carga de trabalho. Quando você configura um registro particular para armazenar imagens de carga de trabalho, as imagens do sistema do Google Distributed Cloud também são armazenadas no registro particular ao criar ou fazer upgrade de clusters.
Embora o Artifact Registry seja compatível com vários métodos de autenticação, é necessário usar uma chave de conta de serviço para autenticação e usar o Artifact Registry como um registro particular. As etapas nesta página explicam como conseguir o endereço,
as credenciais e o certificado da CA que a seção
privateRegistry
no arquivo de configuração do cluster de administrador exige.
Configurar um arquivo de credenciais
Se você não tiver configurado a autenticação para o registro, siga as etapas em Configurar a autenticação no Artifact Registry para Docker e use uma conta de serviço. É necessário usar uma conta de serviço com um arquivo de chave JSON para autenticação.
Crie um arquivo de configuração de credenciais,
admin-creds.yaml
, conforme mostrado no exemplo a seguir. Ousername
precisa ser"_json_key"
. É possível usar qualquer valor para o camponame
, desde que ele corresponda ao valor que você vai adicionar ao campoprivateRegistry.entry
.apiVersion: v1 kind: "CredentialFile" items: - name: "private-registry-creds" username: "_json_key" password:
No diretório em que o arquivo de chave JSON da conta de serviço do registro está localizado, execute
cat
no arquivo de chave para gerar o conteúdo.Copie todo o conteúdo da chave JSON e cole no campo
password
. Coloque o conteúdo da chave JSON entre aspas simples, já que ele contém aspas duplas. Exemplo: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" } '
Configure privateRegistry
no arquivo de configuração do cluster de administrador.
Para usar um registro particular, configure a seção privateRegistry
ao criar o cluster de administrador. Depois que o cluster é criado, não é possível mudar o privateRegistry.address
, mas as outras configurações são mutáveis e podem ser atualizadas, se necessário.
Execute o comando a seguir para receber o endereço do registro:
gcloud artifacts repositories describe REGISTRY_NAME \ --project=PROJECT_ID --location=REGION
Substitua:
REGISTRY_NAME
: o nome do registro.PROJECT_ID
: o ID do projeto em que o registro foi criado.LOCATION
: a região em que o registro foi criado, comous-west2
.
O resultado será assim:
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'
Use o valor
registryUri
na saída paraprivateRegistry.address
.Execute o comando a seguir para extrair o certificado da CA do endpoint do Artifact Registry e salve-o em um arquivo chamado
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
Preencha a seção
privateRegistry
da seguinte maneira:privateRegistry: address: "REGISTRY_ADDRESS" credentials: fileRef: path: "CREDENTIAL_FILE_PATH" entry: "private-registry-creds" caCertPath: "CA_CERT_PATH" componentAccessServiceAccountKeyPath: "COMPONENT_ACCESS_KEY_PATH"
Substitua:
REGISTRY_ADDRESS
: o valor deregistryUri
.CREDENTIAL_FILE_PATH
: o caminho completo ou relativo do arquivoadmin-creds.yaml
.CA_CERT_PATH
: o caminho completo ou relativo do arquivoar-ca.pem
.COMPONENT_ACCESS_KEY_PATH
: o caminho completo ou relativo do arquivo de chave da conta de serviço de acesso a componentes.