Esta página descreve como configurar um Google Distributed Cloud (somente software) para o cluster de administrador do 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 quando você cria ou faz upgrade de clusters.
Embora o Artifact Registry ofereça suporte a vários
métodos de autenticação,
é necessário usar uma chave de conta de serviço para autenticação para usar o Artifact Registry como um
registro privado. As etapas desta página explicam como conseguir o endereço,
as credenciais e o certificado de AC 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 para configurar a autenticação usando 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 abaixo. 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
. Cerifique-se de que o conteúdo da chave JSON esteja entre aspas simples, já que o conteúdo tem 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" } '
Configurar 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 conferir 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 de AC do endpoint do Artifact Registry e salvá-lo 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.