Questa pagina descrive come configurare un cloud distribuito di Google (solo software) per il cluster di amministrazione VMware in modo che utilizzi Artifact Registry di Google come registry Docker privato in cui puoi archiviare le immagini dei carichi di lavoro. Quando configuri un registry privato per archiviare le immagini dei carichi di lavoro, anche le immagini di sistema di Google Distributed Cloud verranno archiviate nel registry privato quando crei o esegui l'upgrade dei cluster.
Sebbene Artifact Registry supporti diversi
metodi di autenticazione,
devi utilizzare una chiave dell'account di servizio per l'autenticazione per utilizzare Artifact Registry come
registro privato. I passaggi descritti in questa pagina spiegano come ottenere l'indirizzo, le credenziali e il certificato CA richiesti dalla sezione privateRegistry
nel file di configurazione del cluster di amministrazione.
Configurare un file delle credenziali
Se non hai configurato l'autenticazione per il registry, segui i passaggi descritti in Configurare l'autenticazione in Artifact Registry per Docker per configurare l'autenticazione utilizzando un account di servizio. Per l'autenticazione devi utilizzare un account di servizio con un file della chiave JSON.
Crea un file di configurazione delle credenziali,
admin-creds.yaml
, come mostrato nell'esempio seguente.username
deve essere"_json_key"
. Puoi utilizzare qualsiasi valore per il camponame
, purché corrisponda al valore che aggiungerai al campoprivateRegistry.entry
.apiVersion: v1 kind: "CredentialFile" items: - name: "private-registry-creds" username: "_json_key" password:
Nella directory in cui si trova il file della chiave JSON per l'account di servizio del registry, esegui
cat
sul file della chiave per visualizzarne i contenuti.Copia l'intero contenuto della chiave JSON e incollalo nel campo
password
. Assicurati di racchiudere i contenuti della chiave JSON tra virgolette singole, poiché contengono virgolette doppie. Ad esempio: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" } '
Configura privateRegistry
nel file di configurazione del cluster di amministrazione
Per utilizzare un registry privato, devi configurare la sezione privateRegistry
quando crei il cluster di amministrazione. Dopo aver creato il cluster, non puoi modificare privateRegistry.address
, ma le altre impostazioni sono mutabili e puoi aggiornarle se necessario.
Esegui il comando seguente per ottenere l'indirizzo del registry:
gcloud artifacts repositories describe REGISTRY_NAME \ --project=PROJECT_ID --location=REGION
Sostituisci quanto segue:
REGISTRY_NAME
: il nome del registry.PROJECT_ID
: l'ID del progetto in cui è stato creato il registry.LOCATION
: la regione in cui è stato creato il registry, ad esempious-west2
.
L'output è simile al seguente:
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'
Utilizza il valore
registryUri
nell'output perprivateRegistry.address
.Esegui il seguente comando per estrarre il certificato CA dell'endpoint Artifact Registry e salvarlo in un file denominato
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
Compila la sezione
privateRegistry
come segue:privateRegistry: address: "REGISTRY_ADDRESS" credentials: fileRef: path: "CREDENTIAL_FILE_PATH" entry: "private-registry-creds" caCertPath: "CA_CERT_PATH" componentAccessServiceAccountKeyPath: "COMPONENT_ACCESS_KEY_PATH"
Sostituisci quanto segue:
REGISTRY_ADDRESS
: il valoreregistryUri
.CREDENTIAL_FILE_PATH
: il percorso completo o relativo del fileadmin-creds.yaml
.CA_CERT_PATH
: il percorso completo o relativo del filear-ca.pem
.COMPONENT_ACCESS_KEY_PATH
: il percorso completo o relativo del file della chiave dell'account di servizio di accesso del componente.