Runtime container adalah software yang bertanggung jawab untuk mengelola container dan image container di node Kubernetes. containerd adalah runtime container CNCF (Cloud Native Cloud Foundation) yang lulus. Containerd 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.
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 image OS berikut untuk node cluster pengguna:
Jenis OS image | Runtime container |
---|---|
ubuntu_containerd | containerd |
cos | containerd |
windows | containerd |
Pembatasan dan rekomendasi
Mulai versi 1.13.0, Google Distributed Cloud tidak lagi mendukung jenis image OS
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 image OS
ubuntu
. Artinya, Anda tidak dapat lagi membuat cluster baru yang menggunakan runtime penampung 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 kumpulan node Windows di cluster pengguna menggunakan runtime penampung 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 dalam cluster pengguna
akan menggunakan containerd. Jika false
, semua node Windows akan menggunakan Docker Engine.
Jalankan perintah berikut untuk menentukan cluster pengguna mana yang menetapkan enableWindowsDataplaneV2
ke false
. Ini 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'
Output 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, jika cluster
memiliki enableWindowsDataplaneV2
yang ditetapkan ke false
, Anda tidak akan dapat mengupgradenya
ke versi 1.13.
Memperbarui node pool Linux untuk menggunakan containerd
Untuk setiap node pool dalam file konfigurasi cluster pengguna, tetapkan osImageType
ubuntu_containerd
atau cos
.
Contoh:
nodePools - name: "my-node-pool" osImageType: "ubuntu_containerd"
Update 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
Di file konfigurasi cluster pengguna, tetapkan
enableWindowsDataplaneV2
ke true
.
enableWindowsDataplaneV2: true
Update cluster pengguna:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Perintah sebelumnya menetapkan runtime penampung ke containerd untuk semua node Windows di cluster.