Tujuan runtime container adalah perangkat lunak yang bertanggung jawab untuk mengelola container dan image container node Kubernetes. containerd adalah CNCF (Cloud Native Cloud Foundation) telah lulus dan runtime container. Mendukung Kubernetes secara native, dan dianggap lebih lebih efisien dan aman dibandingkan Docker Engine untuk Kubernetes. Sampai Kubernetes 1.20, Docker Engine adalah dan runtime container utama. Namun, Dockershim, integrasi Docker Engine kode di Kubernetes, tidak digunakan lagi di Kubernetes 1.20, dan telah dihapus 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 OS image 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 OS image
ubuntu
. Semua node cluster harus menggunakan runtime yang ada dalam container.Anda tidak dapat mengupgrade cluster yang menggunakan Docker Engine ke versi 1,13. Anda harus mengupdate cluster agar dapat menggunakan runtime dalam container sebelum upgrade ke versi 1.13.
Mulai versi 1.12.0, Anda tidak lagi dapat membuat cluster baru yang menggunakan Jenis image OS
ubuntu
. Artinya, Anda tidak lagi dapat membuat klaster baru yang menggunakan dan 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 cluster pengguna {i>kubeconfig<i}.
Contoh output:
ubuntu-node-pool-1 ubuntu-node-pool-3
Windows
Semua kumpulan node Windows dalam cluster pengguna menggunakan runtime container yang sama. Tujuan
untuk {i>runtime<i} untuk {i>node<i} Windows
ditentukan oleh nilai
enableWindowsDataplaneV2
, yang merupakan kolom di cluster pengguna
konfigurasi_file.
Jika enableWindowsDataplaneV2
adalah true
, semua node Windows di cluster pengguna
gunakan containerd. Jika false
, semua node Windows akan menggunakan Docker Engine.
Jalankan perintah berikut untuk menentukan klaster pengguna mana yang memiliki
enableWindowsDataplaneV2
ditetapkan ke false
. Ini memberi tahu Anda klaster pengguna mana
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 pada Node Windows. Contoh:
user-cluster-1
Terlepas dari apakah cluster pengguna memiliki kumpulan node Windows, jika cluster
memiliki enableWindowsDataplaneV2
yang disetel ke false
, Anda tidak akan dapat mengupgrade
ke versi 1.13.
Memperbarui 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 kubeconfig admin file
USER_CLUSTER_CONFIG: jalur konfigurasi cluster pengguna file
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 containerd untuk semua Windows node lainnya di cluster.