Menyesuaikan konfigurasi containerd di node GKE


Halaman ini menunjukkan cara menyesuaikan konfigurasi runtime penampung containerd di node Google Kubernetes Engine (GKE). Sebelum membaca dokumen ini, pastikan Anda memahami runtime penampung dan alasan Anda ingin menyesuaikannya.

Tentang konfigurasi containerd di GKE

Anda dapat mengonfigurasi serangkaian opsi secara manual di runtime containerd pada node GKE yang menjalankan sistem operasi seperti Container-Optimized OS. Dengan menyesuaikan runtime, Anda dapat mengonfigurasi persyaratan khusus seperti akses ke registry image pribadi. Untuk menetapkan opsi ini, Anda membuat file YAML yang disebut file konfigurasi runtime dan meneruskan file tersebut ke GKE saat membuat atau mengupdate cluster.

Metode penyesuaian containerd ini memungkinkan Anda menghindari deployment DaemonSet dengan hak istimewa, yang merupakan risiko keamanan. Saat Anda memberikan file konfigurasi runtime ke GKE, GKE akan membuat ulang node dan mengupdate file config.toml containerd di setiap node dengan konfigurasi Anda. Konfigurasi tetap ada melalui penghentian, upgrade, dan pembuatan ulang node.

File konfigurasi runtime hanya memungkinkan Anda mengonfigurasi opsi di containerd. GKE juga mendukung konfigurasi opsi kubelet tertentu dan opsi kernel Linux tingkat rendah menggunakan file terpisah yang disebut file konfigurasi sistem node. Untuk mengetahui detail selengkapnya, lihat Menyesuaikan konfigurasi sistem node.

Batasan

Anda tidak dapat menggunakan file konfigurasi runtime untuk mengubah setelan containerd di image node Ubuntu. Hanya Container-Optimized OS dengan containerd yang didukung. Ini adalah image node default untuk semua cluster GKE.

Opsi konfigurasi containerd yang tersedia

Tabel berikut menjelaskan opsi yang dapat Anda konfigurasi menggunakan file konfigurasi runtime:

Opsi file konfigurasi runtime

Mengakses registry image pribadi dengan kredensial pribadi yang Anda simpan di Secret Manager.

Untuk mengetahui petunjuknya, lihat Mengakses registry pribadi dengan sertifikat CA pribadi.

privateRegistryAccessConfig:
  enabled: true
  certificateAuthorityDomainConfig:
  - gcpSecretManagerCertificateConfig:
      secretURI: "SECRET_LOCATION"
    fqdns:
    - "FQDN1"
    - "FQDN2"

Konfigurasi ini memiliki kolom berikut:

  • enabled: true: mengaktifkan konfigurasi registry pribadi. Jika Anda menetapkan enabled: false, hapus kolom lain di item privateRegistryAccessConfig.
  • certificateAuthorityDomainConfig: berisi hingga lima definisi sertifikat dan FQDN.
  • gcpSecretManagerCertificateConfig: berisi sertifikat yang disimpan di Secret Manager dan array FQDN.
  • secretURI: lokasi sertifikat di Secret Manager.
  • fqdns: daftar nama domain yang sepenuhnya memenuhi syarat dari registry pribadi. Anda juga dapat menggunakan alamat IPv4, tetapi sebaiknya gunakan FQDN.

Menerapkan konfigurasi containerd ke cluster baru

Bagian ini menunjukkan cara menerapkan file konfigurasi containerd saat Anda membuat cluster GKE baru.

Jalankan perintah berikut:

gcloud container clusters create-auto CLUSTER_NAME \
    --location=LOCATION \
    --scopes="cloud-platform" \
    --containerd-config-from-file="PATH_TO_CONFIG_FILE"

Ganti kode berikut:

  • CLUSTER_NAME: nama cluster baru.
  • LOCATION: lokasi Compute Engine cluster baru Anda.
  • PATH_TO_CONFIG_FILE: jalur ke file konfigurasi yang Anda buat, seperti ~/containerd-configuration.yaml.

Anda dapat mengaktifkan konfigurasi registry pribadi di cluster Standar baru dengan menjalankan perintah gcloud container clusters create dengan opsi yang sama.

Menerapkan konfigurasi containerd ke cluster yang ada

Bagian ini menunjukkan cara menerapkan konfigurasi containerd ke cluster dan node yang ada.

Memeriksa cakupan akses

Cluster yang ada harus memiliki cakupan akses cloud-platform untuk menggunakan fitur ini. Bagian ini menunjukkan cara memeriksa cakupan akses dan mengupdate cluster yang ada dengan file konfigurasi registry pribadi yang baru atau dimodifikasi.

Untuk mengetahui detail tentang cakupan akses default di cluster baru, lihat Cakupan akses di GKE.

Memeriksa cakupan akses Autopilot

Jalankan perintah berikut:

gcloud container clusters describe CLUSTER_NAME \
    --location=LOCATION \
    --flatten=nodeConfig \
    --format='csv[delimiter="\\n",no-heading](oauthScopes)'

Jika cluster Anda tidak memiliki cakupan akses https://www.googleapis.com/auth/cloud-platform, buat cluster baru dengan cakupan akses ini.

Memeriksa Cakupan akses standar

Untuk memeriksa cakupan akses cluster Standard, periksa node pool:

gcloud container node-pools describe NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=LOCATION \
    --flatten=nodeConfig \
    --format='csv[delimiter="\\n",no-heading](oauthScopes)'

Ganti NODE_POOL_NAME dengan nama node pool.

Jika cluster Anda tidak memiliki cakupan akses https://www.googleapis.com/auth/cloud-platform, buat node pool baru dengan cakupan akses cloud-platform dan hapus node pool yang ada.

Mengupdate cluster untuk menggunakan file konfigurasi Anda

Jalankan perintah berikut:

gcloud container clusters update CLUSTER_NAME \
    --location=LOCATION \
    --containerd-config-from-file="PATH_TO_CONFIG_FILE"

Membuat ulang node di cluster Standard

Jika cluster Standard tidak menggunakan upgrade otomatis, Anda harus membuat ulang node pool secara manual untuk menerapkan konfigurasi baru. Untuk memicu pembuatan ulang node manual, upgrade cluster ke versi GKE yang sama dengan yang sudah digunakan.

gcloud container clusters upgrade CLUSTER_NAME \
    --location=LOCATION \
    --cluster-version=VERSION

Ganti VERSION dengan versi patch GKE yang sama dengan yang sudah digunakan cluster.

Menonaktifkan opsi konfigurasi containerd

Untuk menghapus konfigurasi kustom, lakukan hal berikut:

  1. Perbarui file konfigurasi untuk menentukan enabled: false dalam item konfigurasi yang ingin Anda nonaktifkan dan hapus kolom lain dalam item, seperti pada contoh berikut:

    privateRegistryAccessConfig:
      enabled: false
  2. Terapkan file konfigurasi yang telah diupdate ke cluster Anda. Untuk mengetahui petunjuknya, lihat Menerapkan konfigurasi containerd ke cluster yang ada.