Esta página descreve como configurar um Google Distributed Cloud (apenas software) para que o cluster de administrador do VMware use o Artifact Registry da Google como o registo Docker privado onde pode armazenar imagens de cargas de trabalho. Quando configura um registo privado para armazenar imagens de cargas de trabalho, as imagens do sistema do Google Distributed Cloud também são armazenadas no registo privado quando cria ou atualiza clusters.
Embora o Artifact Registry suporte vários
métodos de autenticação,
tem de usar uma chave de conta de serviço para a autenticação para usar o Artifact Registry como um
registo privado. Os passos nesta página explicam como obter o endereço, as credenciais e o certificado de AC que a secção privateRegistry
no ficheiro de configuração do cluster de administrador requer.
Configure um ficheiro de credenciais
Se não tiver configurado a autenticação para o registo, siga os passos em Configurar a autenticação para o Artifact Registry para o Docker para configurar a autenticação através de uma conta de serviço. Tem de usar uma conta de serviço com um ficheiro de chave JSON para autenticação.
Crie um ficheiro de configuração de credenciais,
admin-creds.yaml
, conforme mostrado no exemplo seguinte. Ousername
tem de ser"_json_key"
. Pode usar qualquer valor para o camponame
, desde que corresponda ao valor que vai adicionar ao campoprivateRegistry.entry
.apiVersion: v1 kind: "CredentialFile" items: - name: "private-registry-creds" username: "_json_key" password:
No diretório onde se encontra o ficheiro de chave JSON da conta de serviço do registo, execute
cat
no ficheiro de chave para gerar o conteúdo.Copie todo o conteúdo da chave JSON e cole-o no campo
password
. Certifique-se de que coloca o conteúdo da chave JSON entre aspas simples, uma vez que o conteúdo contém aspas duplas. Por 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 ficheiro de configuração do cluster de administração
Para usar um registo privado, tem de configurar a secção privateRegistry
quando cria o cluster de administrador. Depois de criar o cluster, não pode alterar o privateRegistry.address
, mas as outras definições são mutáveis e pode atualizá-las, se necessário.
Execute o seguinte comando para obter o endereço do registo:
gcloud artifacts repositories describe REGISTRY_NAME \ --project=PROJECT_ID --location=REGION
Substitua o seguinte:
REGISTRY_NAME
: o nome da base de dados de registo.PROJECT_ID
: o ID do projeto no qual o registo foi criado.LOCATION
: a região em que o registo foi criado, comous-west2
.
O resultado é semelhante ao seguinte:
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
no resultado paraprivateRegistry.address
.Execute o seguinte comando para extrair o certificado de AC do ponto final do Artifact Registry e guardá-lo num ficheiro denominado
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 secção
privateRegistry
da seguinte forma:privateRegistry: address: "REGISTRY_ADDRESS" credentials: fileRef: path: "CREDENTIAL_FILE_PATH" entry: "private-registry-creds" caCertPath: "CA_CERT_PATH" componentAccessServiceAccountKeyPath: "COMPONENT_ACCESS_KEY_PATH"
Substitua o seguinte:
REGISTRY_ADDRESS
: o valorregistryUri
.CREDENTIAL_FILE_PATH
: o caminho completo ou relativo do ficheiroadmin-creds.yaml
.CA_CERT_PATH
: o caminho completo ou relativo do ficheiroar-ca.pem
.COMPONENT_ACCESS_KEY_PATH
: o caminho completo ou relativo do ficheiro de chave da conta de serviço de acesso ao componente.