Anda dapat mengonfigurasi cluster Google Distributed Cloud agar worker node-nya dapat
menggunakan registry pribadi. Registry pribadi level node dimaksudkan untuk digunakan dengan
beban kerja Anda guna memberi Anda lebih banyak kontrol atas pull image dan keamanan
terkaitnya. Saat Anda mengonfigurasi cluster dengan registry pribadi seperti yang dijelaskan dalam dokumen ini, Google Distributed Cloud akan memperbarui konfigurasi dalam container sesuai kebutuhan. Setelah cluster dikonfigurasi, semua Pod pada 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.
Prasyarat
Untuk menggunakan fitur Pratinjau ini, cluster Anda harus memenuhi persyaratan berikut:
- Fitur ini ditujukan untuk cluster pengguna dan cluster yang dikelola sendiri (hibrida dan mandiri) dengan kumpulan node pekerja.
- Versi cluster harus versi 1.29.
- Versi kumpulan Node harus dalam versi 1.29 (tidak semua kumpulan node harus berada pada versi 1.29, tetapi fitur ini hanya berfungsi untuk kumpulan node pada versi 1.29).
- Cluster harus memiliki
anotasi fitur pratinjau
preview.baremetal.cluster.gke.io/private-registry: "enable"
.
Mengonfigurasi cluster yang dikelola sendiri untuk registry pribadi
Untuk mengonfigurasi cluster mandiri atau hybrid agar menggunakan registry pribadi level node:
Edit file konfigurasi cluster untuk menambahkan blok
privateRegistries
di 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" ... 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 tidak memerlukan sertifikat TLS pribadi, Anda dapat menghapus kolom ini.CREDENTIALS_FILE_PATH
: jalur file yang berisi kredensial untuk mengakses registry pribadi Anda. Contoh:/root/.docker/config.json
. Jika server registry pribadi Anda tidak memerlukan kredensial untuk autentikasi, Anda dapat menghapus kolom ini.
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. Selain itu, untuk cluster pengguna, Anda harus menyimpan kredensial registry pribadi secara rahasia:
Buat Secret Kubernetes jenis
kubernetes.io/dockerconfigjson
untuk kredensial registry:Jika Anda ingin mencakup Secret ini ke namespace tertentu, tambahkan flag
--namespace
ke perintah berikut untuk menentukan nama namespace.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 Docker. Contoh,/root/.docker/config.json
.
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 Secret tidak berada di namespace yang sama dengan cluster, tambahkan anotasi
baremetal.cluster.gke.io/mark-source: "true"
, seperti yang ditunjukkan pada contoh sebelumnya.Jika berlaku, simpan sertifikat CA untuk registry di dalam Rahasia.
Secret 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:
Tambahkan anotasi
preview.baremetal.cluster.gke.io/private-registry: "enable"
untuk mengaktifkan registry pribadi saat berada dalam Pratinjau.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
nodeConfig
pada file konfigurasi cluster pengguna, tambahkan blokprivateRegistries
: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 rahasia ini, hapus blokcaCertSecretRef
.CA_CERT_SECRET_NAMESPACE
: nama namespace untuk Rahasia 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 jeniskubernetes.io/dockerconfigjson
untuk kredensial registry.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 sedang Anda perbarui.ADMIN_KUBECONFIG
: jalur file kubeconfig cluster admin.