Tentang runtime container containerd

Google Distributed Cloud menggunakan containerd sebagai runtime container di semua node cluster admin dan pengguna, termasuk node Windows. Sebagai runtime container lulusan Cloud Native Computing Foundation (CNCF), containerd menyediakan dukungan Kubernetes bawaan.

Kubernetes 1.24 menghapus dockershim, komponen yang memungkinkan Kubernetes menggunakan Docker Engine sebagai runtime container-nya. Dalam dokumen ini, Anda akan menemukan node pool yang masih menggunakan Docker Engine dan mengupdatenya ke containerd.

Dukungan untuk containerd di cluster admin

Google Distributed Cloud menggunakan containerd untuk semua node cluster admin.

Dukungan untuk containerd di cluster pengguna

Google Distributed Cloud mendukung jenis OS image berikut untuk node cluster pengguna:

Jenis OS imageRuntime container
ubuntu_cgv2containerd
cos_cgv2containerd
windowscontainerd

Batasan dan rekomendasi

  • Mulai versi 1.13.0, Google Distributed Cloud tidak lagi mendukung jenis OS image ubuntu. Semua node cluster harus menggunakan runtime containerd.

  • Anda tidak dapat mengupgrade cluster yang menggunakan Docker Engine ke versi 1.13. Anda harus mengupdate cluster untuk menggunakan runtime containerd sebelum mengupgrade ke 1.13.

  • Mulai versi 1.12.0, Anda tidak dapat lagi membuat cluster baru yang menggunakan jenis OS image ubuntu. Artinya, Anda tidak dapat lagi membuat cluster baru yang menggunakan runtime container Docker Engine.

Menentukan node pool yang menggunakan Docker Engine

Ubuntu

Cantumkan node pool Ubuntu yang menggunakan Docker Engine:

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get onpremnodepools \
    -o json -A | jq -r '.items[] |select(.spec.osImageType == "ubuntu")|.metadata.name'

Ganti USER_CLUSTER_KUBECONFIG dengan jalur file kubeconfig cluster pengguna.

Contoh output:

ubuntu-node-pool-1
ubuntu-node-pool-3

Windows

Semua node pool Windows di cluster pengguna menggunakan runtime container yang sama. Runtime untuk node Windows ditentukan oleh nilai enableWindowsDataplaneV2, yang merupakan kolom dalam file konfigurasi cluster pengguna.

Jika enableWindowsDataplaneV2 adalah true, semua node Windows di cluster pengguna akan menggunakan containerd. Jika false, semua node Windows akan menggunakan Docker Engine.

Jalankan perintah berikut untuk menentukan cluster pengguna yang memiliki enableWindowsDataplaneV2 yang ditetapkan ke false. Tindakan ini akan memberi tahu Anda cluster pengguna mana yang dikonfigurasi untuk menggunakan Docker Engine untuk node Windows.

kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get onpremuserclusters \
    -A -o json | jq -r '.items[] |select(.spec.enableWindowsDataplaneV2 == false)|.metadata.name'

Outputnya mencantumkan semua cluster pengguna yang dikonfigurasi untuk menggunakan Docker Engine untuk node Windows. Contoh:

user-cluster-1

Terlepas dari apakah cluster pengguna memiliki node pool Windows atau tidak, jika cluster memiliki enableWindowsDataplaneV2 yang ditetapkan ke false, Anda tidak akan dapat mengupgradenya ke versi 1.13.

Mengupdate node pool Linux untuk menggunakan containerd

Untuk setiap node pool dalam file konfigurasi cluster pengguna, tetapkan osImageType tetapkan osImageType ke ubuntu_cgv2 atau cos_cgv2.

Contoh:

nodePools
- name: "my-node-pool"
  osImageType: "ubuntu_cgv2"

Perbarui cluster pengguna:

gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

Ganti kode berikut:

  • ADMIN_CLUSTER_KUBECONFIG: jalur file kubeconfig cluster admin

  • USER_CLUSTER_CONFIG: jalur file konfigurasi cluster pengguna

Mengupdate node Windows untuk menggunakan containerd

Dalam file konfigurasi cluster pengguna, tetapkan enableWindowsDataplaneV2 ke true.

enableWindowsDataplaneV2: true

Perbarui cluster pengguna:

gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

Perintah sebelumnya menetapkan runtime container ke containerd untuk semua node Windows dalam cluster.