Container runtime adalah software yang bertanggung jawab untuk mengelola container dan image container pada node Kubernetes. containerd adalah runtime container lulusan CNCF (Cloud Native Cloud Foundation). Docker 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 yang disimpan dalam container di cluster admin
GKE di VMware menggunakan container untuk semua node cluster admin.
Dukungan untuk container di cluster pengguna
GKE di VMware mendukung jenis image OS berikut untuk node cluster pengguna:
Jenis OS image | Runtime container |
---|---|
ubuntu_containerd | containerd |
cos | containerd |
windows | containerd |
Batasan dan rekomendasi
Mulai versi 1.13.0, GKE di VMware tidak lagi mendukung jenis OS image
ubuntu
. Semua node cluster harus menggunakan runtime dengan container.Anda tidak dapat mengupgrade cluster yang menggunakan Docker Engine ke versi 1.13. Anda harus memperbarui cluster untuk menggunakan runtime dengan 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
Tampilkan 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 kubeconfig 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 statusnya 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'
Output-nya mencantumkan semua cluster pengguna yang dikonfigurasi agar menggunakan Docker Engine untuk 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 admin custer kubeconfig
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 dalam container untuk semua node Windows dalam cluster.