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 particular do Docker em que você pode armazenar imagens de carga de trabalho. Ao configurar 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 ofereça suporte a vários métodos de autenticação diferentes
,
é 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 receber o endereço,
as credenciais e o certificado de CA exigidos pela
privateRegistry
seção no arquivo de configuração do cluster de administrador.
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 a seguir. Ousernameprecisa ser"_json_key". Você pode 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
catno arquivo de chave para gerar o conteúdo.Copie todo o conteúdo da chave JSON e cole-o no campo
password. Coloque o conteúdo da chave JSON entre aspas simples, já que o conteúdo 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" } '
Configurar privateRegistry no arquivo de configuração do cluster de administrador
Para usar um registro particular, é necessário configurar 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=REGIONSubstitua:
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
registryUrina saída para oprivateRegistry.address.Execute o comando a seguir para extrair o certificado de CA 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.pemPreencha a seção
privateRegistryda 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 valorregistryUri.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 ao componente.