Menyesuaikan konfigurasi dalam container di node GKE


Halaman ini menunjukkan cara menyesuaikan konfigurasi runtime container dalam container di node Google Kubernetes Engine (GKE). Anda tentu sudah memahami apa itu runtime container dan alasan untuk menyesuaikannya.

Tentang konfigurasi dalam container di GKE

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

Metode penyesuaian container ini memungkinkan Anda menghindari deployment DaemonSet dengan hak istimewa, yang merupakan risiko keamanan. Jika Anda memberi GKE file konfigurasi runtime, GKE akan membuat ulang node Anda dan memperbarui file config.toml dalam container pada setiap node dengan konfigurasi Anda. Konfigurasi tetap ada selama penghentian, upgrade, dan pembuatan ulang node.

File konfigurasi runtime hanya memungkinkan Anda mengonfigurasi opsi dalam container. GKE juga mendukung konfigurasi opsi kubelet tertentu dan opsi kernel Linux level 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 dalam container pada image node Ubuntu. Hanya Container-Optimized OS dengan containerd yang didukung. Ini adalah image node default untuk semua cluster GKE.

Opsi konfigurasi dalam container yang tersedia

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

Opsi file konfigurasi runtime

Akses registry gambar 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 dalam 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 registry pribadi yang sepenuhnya memenuhi syarat. Anda juga dapat menggunakan alamat IPv4, tetapi sebaiknya gunakan FQDN.

Menerapkan konfigurasi dalam container ke cluster baru

Bagian ini menunjukkan cara menerapkan file konfigurasi dalam container 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 pada cluster Standar baru dengan menjalankan perintah gcloud container clusters create dengan opsi yang sama.

Menerapkan konfigurasi dalam container ke cluster yang ada

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

Memeriksa cakupan akses

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

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

Periksa 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 Standar, periksa kumpulan node:

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 kumpulan node baru dengan cakupan akses cloud-platform, lalu hapus kumpulan node yang ada.

Update 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 Standar

Jika cluster Standar tidak menggunakan upgrade otomatis, Anda harus membuat ulang kumpulan node secara manual untuk menerapkan konfigurasi baru. Untuk memicu pembuatan ulang node manual, upgrade cluster Anda 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 versi yang sudah digunakan cluster.

Menonaktifkan opsi konfigurasi dalam container

Untuk menghapus konfigurasi kustom, lakukan langkah berikut:

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

    privateRegistryAccessConfig:
      enabled: false
  2. Terapkan file konfigurasi terbaru ke cluster Anda. Untuk mendapatkan petunjuk, lihat Menerapkan konfigurasi dalam container ke cluster yang ada.