Menggunakan Artifact Registry sebagai registry pribadi untuk image workload

Halaman ini menjelaskan cara mengonfigurasi Google Distributed Cloud (khusus software) untuk cluster admin VMware agar menggunakan Artifact Registry Google sebagai registry Docker pribadi tempat Anda dapat menyimpan image workload. Saat Anda mengonfigurasi registry pribadi untuk menyimpan image beban kerja, image sistem Google Distributed Cloud juga akan disimpan di registry pribadi saat Anda membuat atau mengupgrade cluster.

Meskipun Artifact Registry mendukung beberapa metode autentikasi, Anda harus menggunakan kunci akun layanan untuk autentikasi guna menggunakan Artifact Registry sebagai registry pribadi. Langkah-langkah di halaman ini menjelaskan cara mendapatkan alamat, kredensial, dan sertifikat CA yang diperlukan bagian privateRegistry dalam file konfigurasi cluster admin.

Mengonfigurasi file kredensial

  1. Jika Anda belum mengonfigurasi autentikasi untuk registry, ikuti langkah-langkah di Mengonfigurasi autentikasi ke Artifact Registry untuk Docker untuk mengonfigurasi autentikasi menggunakan akun layanan. Anda harus menggunakan akun layanan dengan file kunci JSON untuk autentikasi.

  2. Buat file konfigurasi kredensial, admin-creds.yaml, seperti yang ditunjukkan dalam contoh berikut. username harus "_json_key". Anda dapat menggunakan nilai apa pun untuk kolom name, selama cocok dengan nilai yang akan ditambahkan ke kolom privateRegistry.entry.

    apiVersion: v1
    kind: "CredentialFile"
    items:
    - name: "private-registry-creds"
      username: "_json_key"
      password:
    
  3. Di direktori tempat file kunci JSON untuk akun layanan registry berada, jalankan cat pada file kunci untuk menampilkan konten.

  4. Salin seluruh konten kunci JSON dan tempelkan di kolom password. Pastikan untuk mengapit konten kunci JSON dengan tanda kutip tunggal karena konten tersebut berisi tanda kutip ganda. Contoh:

    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"
    }
    '
    

Mengonfigurasi privateRegistry di file konfigurasi cluster admin

Untuk menggunakan registry pribadi, Anda perlu mengonfigurasi bagian privateRegistry saat membuat cluster admin. Setelah cluster dibuat, Anda tidak dapat mengubah privateRegistry.address, tetapi setelan lainnya dapat diubah dan Anda dapat memperbaruinya jika diperlukan.

  1. Jalankan perintah berikut untuk mendapatkan alamat registry:

    gcloud artifacts repositories describe REGISTRY_NAME \
        --project=PROJECT_ID
        --location=REGION
    

    Ganti kode berikut:

    • REGISTRY_NAME: nama registry.
    • PROJECT_ID: ID project tempat registry dibuat.
    • LOCATION: region tempat registry dibuat, seperti us-west2.

    Outputnya mirip dengan hal berikut ini:

    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'
    

    Gunakan nilai registryUri dalam output untuk privateRegistry.address.

  2. Jalankan perintah berikut untuk mengekstrak sertifikat CA endpoint Artifact Registry dan menyimpannya ke file bernama 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
    
  3. Isi bagian privateRegistry sebagai berikut:

    privateRegistry:
      address: "REGISTRY_ADDRESS"
      credentials:
        fileRef:
          path: "CREDENTIAL_FILE_PATH"
          entry: "private-registry-creds"
      caCertPath: "CA_CERT_PATH"
    componentAccessServiceAccountKeyPath: "COMPONENT_ACCESS_KEY_PATH"
    

    Ganti kode berikut:

    • REGISTRY_ADDRESS: nilai registryUri.
    • CREDENTIAL_FILE_PATH: jalur lengkap atau relatif file admin-creds.yaml.
    • CA_CERT_PATH: jalur lengkap atau relatif dari file ar-ca.pem.
    • COMPONENT_ACCESS_KEY_PATH: jalur lengkap atau relatif file kunci akun layanan akses komponen.