Menggunakan containerd untuk runtime container

Container runtime adalah software yang bertanggung jawab untuk mengelola container dan image container pada node Kubernetes. containerd adalah runtime container CNCF (Cloud Native Cloud Foundation). Docker versi ini mendukung Kubernetes secara native, dan dianggap lebih hemat resource dan aman daripada Docker Engine untuk Kubernetes. Hingga Kubernetes 1.20, Docker Engine adalah runtime container utama. Namun, Dockershim, kode integrasi Docker Engine di Kubernetes, tidak digunakan lagi di Kubernetes 1.20, dan telah dihapus di Kubernetes 1.24.

Ke depannya, Anda harus menggunakan containerd di cluster Anda.

Dukungan untuk containerd di cluster admin

Google Distributed Cloud menggunakan container untuk semua node cluster admin.

Dukungan untuk containerd dalam cluster pengguna

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

Jenis image OSRuntime container
ubuntu_containerdcontainerd
coscontainerd
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 dalam container.

  • Anda tidak dapat mengupgrade cluster yang menggunakan Docker Engine ke versi 1.13. Anda harus mengupdate cluster untuk menggunakan runtime dalam container sebelum mengupgrade ke versi 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 kumpulan node mana yang menggunakan Docker Engine

Ubuntu

Buat daftar kumpulan node 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 cluster pengguna.

Contoh output:

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

Windows

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

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

Jalankan perintah berikut untuk menentukan cluster pengguna mana yang telah menetapkan enableWindowsDataplaneV2 ke false. Ini memberi tahu Anda cluster pengguna mana yang dikonfigurasi untuk menggunakan Docker Engine bagi 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 bagi node Windows. Contoh:

user-cluster-1

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

Mengupdate kumpulan node Linux untuk menggunakan container

Untuk setiap kumpulan node dalam file konfigurasi cluster pengguna, tetapkan osImageType ubuntu_containerd atau cos.

Contoh:

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

Perbarui cluster pengguna:

gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

Ganti kode berikut:

  • ADMIN_CLUSTER_KUBECONFIG: jalur file kubeconfig admin custer

  • USER_CLUSTER_CONFIG: jalur file konfigurasi cluster pengguna

Mengupdate node Windows untuk menggunakan container

Di 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 dalam container untuk semua node Windows dalam cluster.