Anda dapat mengonfigurasi cluster Google Distributed Cloud sehingga worker node-nya dapat menggunakan registry pribadi, termasuk Artifact Registry. Registry pribadi tingkat node ditujukan untuk digunakan dengan beban kerja Anda guna memberi Anda kontrol yang lebih besar atas penarikan image dan keamanan terkaitnya. Saat Anda mengonfigurasi cluster dengan registry pribadi seperti yang dijelaskan dalam dokumen ini, Google Distributed Cloud akan mengupdate konfigurasi containerd sebagaimana mestinya. Setelah cluster Anda dikonfigurasi, semua Pod di node yang memenuhi syarat dapat menggunakan registry tanpa harus menentukan imagePullSecrets dalam spesifikasi Pod.
Fitur ini dapat diaktifkan atau dinonaktifkan kapan saja dalam siklus proses cluster.
Daftar berikut menunjukkan tahap peluncuran fitur ini per versi:
- 1.30 dan yang lebih baru: GA
- 1.29: Pratinjau
Prasyarat
1.30 dan yang lebih baru
Untuk menggunakan fitur GA ini, cluster Anda harus memenuhi persyaratan berikut:
- Versi cluster harus 1.30 atau yang lebih baru.
- Versi node pool harus 1.29 atau yang lebih baru (cluster 1.30 dapat memiliki node pool di versi 1.28, tetapi fitur ini hanya berfungsi untuk node pool di versi 1.29 atau yang lebih baru).
- Fitur ini ditujukan untuk cluster pengguna dan cluster yang dikelola sendiri (hybrid dan mandiri) dengan pool node pekerja, seperti yang ditunjukkan dalam tabel berikut: - Model deployment - Jenis cluster yang didukung - Deployment cluster admin dan pengguna - Cluster admin - Grup pengguna 1 - Grup pengguna 2 - Deployment cluster hybrid - Cluster hybrid - Grup pengguna 1 - Grup pengguna 2 - Deployment cluster mandiri - Cluster mandiri 
1,29
Untuk menggunakan fitur Pratinjau ini, cluster Anda harus memenuhi persyaratan berikut:
- Versi cluster harus 1.29.
- Versi Node pool harus 1.29 (tidak semua node pool harus menggunakan versi 1.29, tetapi fitur ini hanya berfungsi untuk node pool dengan versi 1.29).
- Cluster harus memiliki
anotasi fitur
pratinjau preview.baremetal.cluster.gke.io/private-registry: "enable".
- Fitur ini ditujukan untuk cluster pengguna dan cluster yang dikelola sendiri (hybrid dan mandiri) dengan pool node pekerja, seperti yang ditunjukkan dalam tabel berikut: - Model deployment - Jenis cluster yang didukung - Deployment cluster admin dan pengguna - Cluster admin - Grup pengguna 1 - Grup pengguna 2 - Deployment cluster hybrid - Cluster hybrid - Grup pengguna 1 - Grup pengguna 2 - Deployment cluster mandiri - Cluster mandiri 
Mengonfigurasi cluster yang dikelola sendiri untuk registry pribadi
Untuk mengonfigurasi cluster mandiri atau hybrid agar menggunakan registry pribadi tingkat node:
- Edit file konfigurasi cluster untuk menambahkan blok - privateRegistriesdi bagian kredensial:- --- gcrKeyPath: baremetal/gcr.json sshPrivateKeyPath: .ssh/id_rsa ... privateRegistries: - host: REGISTRY_HOST caCertPath: CA_CERT_PATH pullCredentialConfigPath: CREDENTIALS_FILE_PATH ... --- apiVersion: v1 kind: Namespace metadata: name: cluster-hybrid-basic --- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: hybrid-basic namespace: cluster-hybrid-basic annotations: preview.baremetal.cluster.gke.io/private-registry: "enable" # Version 1.29 clusters only ... spec: type: hybrid ...- Ganti kode berikut: - REGISTRY_HOST: nama domain atau alamat IP registry pribadi dan port. Contoh:- 10.200.0.2:5007.
- CA_CERT_PATH: jalur file sertifikat CA (CA root server). Contoh:- /root/cert.pem. Jika registry pribadi Anda tidak memerlukan sertifikat TLS pribadi, Anda dapat menghilangkan kolom ini.
- CREDENTIALS_FILE_PATH: jalur file konfigurasi,- config.json(misalnya,- $HOME/.docker/config.json). Untuk mengautentikasi containerd agar dapat mengakses registry pribadi Anda,- config.jsonharus berisi versi kredensial Anda yang dienkode base64 di bagian- authsfile.- Untuk Artifact Registry, lakukan autentikasi menggunakan kunci JSON akun layanan dengan nilai berikut: - username:- _json_key
- password: seluruh konten file kunci JSON akun layanan. Sertakan konten kunci JSON yang ditempelkan dalam tanda petik tunggal (- ') untuk mencegah error penguraian.
 - Untuk mengetahui informasi selengkapnya tentang cara membuat file ini, lihat Mengonfigurasi autentikasi ke Artifact Registry untuk Docker di dokumentasi Artifact Registry. - Untuk registry pribadi lainnya, string - authberenkode base64 biasanya dibentuk dari- USERNAME:PASSWORD, menggunakan kredensial registry spesifik Anda. Jika server registry pribadi Anda tidak memerlukan kredensial untuk autentikasi, Anda dapat menghilangkan kolom- pullCredentialConfigPath.- Untuk melindungi data sensitif, Anda dapat menggunakan - chowndan- chmoduntuk membatasi akses ke file konfigurasi.
 
- Terapkan perubahan pada cluster Anda: - bmctl update cluster -c CLUSTER_NAME --kubeconfig=CLUSTER_KUBECONFIG- Ganti kode berikut: - CLUSTER_NAME: nama cluster yang ingin Anda perbarui.
- CLUSTER_KUBECONFIG: jalur file kubeconfig cluster yang dikelola sendiri (hibrida atau mandiri).
 
Mengonfigurasi cluster pengguna untuk registry pribadi
Dengan cluster pengguna, konfigurasi registry pribadi ditentukan dalam spesifikasi resource cluster pengguna, yang berada di cluster admin. Selain itu, Anda perlu menyimpan kredensial registry pribadi di Secret, yang juga berada di cluster admin:
- Buat Secret Kubernetes jenis - kubernetes.io/dockerconfigjsonuntuk kredensial registry:- Jika Anda ingin mencakup Secret ke namespace tertentu, tambahkan flag - --namespaceke perintah berikut untuk menentukan nama namespace. Jika Secret tidak berada di namespace yang sama dengan cluster, tambahkan anotasi- baremetal.cluster.gke.io/mark-source: "true", seperti yang ditunjukkan dalam contoh di akhir langkah ini.- kubectl create secret docker-registry CREDS_SECRET_NAME \ --from-file=.dockerconfigjson=CREDENTIALS_FILE_PATH \ --kubeconfig=ADMIN_KUBECONFIG- Ganti kode berikut: - CREDS_SECRET_NAME: nama untuk Secret Anda.
- CREDENTIALS_FILE_PATH: jalur file konfigurasi,- config.json(misalnya,- $HOME/.docker/config.json). Untuk mengautentikasi containerd agar dapat mengakses registry pribadi Anda,- config.jsonharus berisi versi kredensial Anda yang dienkode base64 di bagian- authsfile.- Untuk Artifact Registry, lakukan autentikasi menggunakan kunci JSON akun layanan dengan nilai berikut: - username:- _json_key
- password: seluruh konten file kunci JSON akun layanan. Sertakan konten kunci JSON yang ditempelkan dalam tanda petik tunggal (- ') untuk mencegah error penguraian.
 - Untuk mengetahui informasi selengkapnya tentang cara membuat file ini, lihat Mengonfigurasi autentikasi ke Artifact Registry untuk Docker di dokumentasi Artifact Registry. - Untuk registry pribadi lainnya, string - authberenkode base64 biasanya dibentuk dari- USERNAME:PASSWORD, menggunakan kredensial registry spesifik Anda. Jika server registry pribadi Anda tidak memerlukan kredensial untuk autentikasi, Anda dapat menghilangkan kolom- pullCredentialSecretRef.- Untuk melindungi data sensitif, Anda dapat menggunakan - chowndan- chmoduntuk membatasi akses ke file konfigurasi.
 - Secret Anda akan terlihat seperti contoh berikut: - apiVersion: v1 data: .dockerconfigjson: ewoJImF1dGhzIjogewoJ...clpYSXdNak14IgoJCX0KCX0KfQ== kind: Secret metadata: creationTimestamp: "2024-04-28T22:06:06Z" name: private-registry-secret namespace: default resourceVersion: "5055821" ... annotations: ... baremetal.cluster.gke.io/mark-source: "true" type: kubernetes.io/dockerconfigjson
- Jika berlaku, simpan sertifikat CA untuk registry di Secret. - Secret akan terlihat mirip dengan berikut ini: - apiVersion: v1 kind: Secret metadata: annotations: baremetal.cluster.gke.io/mark-source: "true" name: ca-9dd74fd308bac6df562c7a7b220590b5 namespace: some-namespace type: Opaque data: ca.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUR2RENDQXFTZ0F3SUJBZ0lVQi 3UGxjUzVFVk8vS0xuYjZiMHRhRFVleXJvd0RRWUpLb1pJaHZjTkFRRUwKQlFBd2ZqRUxNQWtHQ ... QnpPTkxTRFZJVk5LMm9YV1JvNEpJY0ZoNFZ4MWRMRHpqMldEaHhrUEljWEhLdGR3dk5iS2tocU LUVORCBDRVJUSUZJQ0FURS0tLS0tCg== ```
- Edit file konfigurasi cluster pengguna untuk mengaktifkan dan mengonfigurasi registry pribadi: - Khusus untuk cluster versi 1.29, tambahkan anotasi fitur Preview - preview.baremetal.cluster.gke.io/private-registry: "enable"untuk mengaktifkan fitur. Untuk cluster versi 1.30 dan yang lebih baru, fitur registry pribadi diaktifkan secara default.- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: user-basic namespace: cluster-user-basic resourceVersion: "766027" annotations: ... preview.baremetal.cluster.gke.io/private-registry: "enable" ...
- Di bagian - nodeConfigfile konfigurasi cluster pengguna, tambahkan blok- privateRegistries:- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: user-basic ... spec: bypassPreflightCheck: false ... nodeConfig: containerRuntime: containerd podDensity: maxPodsPerNode: 250 privateRegistries: - caCertSecretRef: name: CA_CERT_SECRET_NAME namespace: CA_CERT_SECRET_NAMESPACE host: REGISTRY_HOST pullCredentialSecretRef: name: CREDS_SECRET_NAME namespace: CREDS_SECRET_NAMESPACE
 - Ganti kode berikut: - CA_CERT_SECRET_NAME: nama Secret yang Anda buat untuk menyimpan sertifikat CA. Jika Anda tidak membuat secret ini, hapus blok- caCertSecretRef.
- CA_CERT_SECRET_NAMESPACE: nama namespace untuk Secret sertifikat CA, jika Anda membuatnya.
- REGISTRY_HOST: nama domain atau alamat IP registry pribadi dan port. Contoh:- 10.200.0.2:5007.
- CREDS_SECRET_NAME: nama Secret jenis- kubernetes.io/dockerconfigjsonuntuk kredensial registri.
- CREDS_SECRET_NAMESPACE: nama namespace untuk Secret untuk kredensial registry.
 
- Terapkan perubahan pada cluster Anda: - bmctl update cluster -c USER_CLUSTER_NAME --kubeconfig=ADMIN_KUBECONFIG- Ganti kode berikut: - USER_CLUSTER_NAME: nama cluster yang Anda perbarui.
- ADMIN_KUBECONFIG: jalur file kubeconfig cluster admin.