Secara default, containerd 2.1 digunakan oleh kluster Container Service for Kubernetes (ACK) yang menjalankan Kubernetes 1.33. containerd 2.1 menawarkan peningkatan keamanan gambar, performa, dan stabilitas. Topik ini menjelaskan catatan rilis untuk containerd 2.1, termasuk pembaruan fitur, fitur yang tidak direkomendasikan, dan API yang tidak direkomendasikan.
Fitur
Bagian ini hanya mencakup fitur utama dari containerd 2.1. Untuk informasi lebih lanjut, lihat catatan rilis containerd.
Fitur Node Resource Interface (NRI) didukung dan diaktifkan secara default.
Fitur Container Device Interface (CDI) didukung dan diaktifkan secara default.
API Sandbox didukung.
Fitur dan API yang tidak direkomendasikan
Bagian ini mencakup fitur dan API utama yang tidak direkomendasikan dalam containerd 2.1. Untuk informasi lebih lanjut, lihat catatan rilis containerd.
Parameter berikut tidak direkomendasikan: registry.auths, registry.configs, dan registry.mirrors. Untuk informasi lebih lanjut tentang cara menyesuaikan parameter containerd di konsol Container Service for Kubernetes (ACK), lihat Sesuaikan parameter containerd dari pool node.
Gambar Docker dalam format Schema 1, seperti
application/vnd.docker.distribution.manifest.v1+jsondanapplication/vnd.docker.distribution.manifest.v1+prettyjws, tidak lagi didukung. Permintaan untuk menarik gambar tersebut akan ditolak. Untuk informasi lebih lanjut tentang cara mengidentifikasi gambar Docker dalam format Schema 1, lihat Identifikasi gambar Docker dalam format Schema 1.Sistem panggilan (syscall)
io_uring_*dihapus dari profil seccomp default containerd. Secara default, kontainer tidak dapat melakukan syscallio_uring_*.API CRI v1alpha2 tidak direkomendasikan. API CRI v1alpha2 telah tidak direkomendasikan sejak Kubernetes 1.26.
AUFS snapshotter tidak direkomendasikan.
Parameter
[plugins."io.containerd.internal.v1".tracing]dihapus.
Catatan pembaruan
API CRI v1alpha2 tidak lagi didukung di containerd 2.1. Jika bisnis Anda bergantung pada API tersebut, Anda dapat bermigrasi ke API CRI v1.
Sebelum memperbarui containerd, disarankan untuk merujuk ke Identifikasi API yang tidak direkomendasikan untuk memeriksa apakah API yang tidak direkomendasikan digunakan oleh bisnis Anda. Anda juga dapat menjalankan pemeriksaan otomatis di konsol ACK. Untuk melakukannya, buka halaman detail kluster di konsol ACK, pilih Operations > Upgrade Cluster di panel navigasi sebelah kiri, lalu klik Precheck.
Selama pembaruan, sistem secara otomatis memeriksa API yang tidak direkomendasikan. Jika API yang tidak direkomendasikan terdeteksi, sistem akan menangguhkan pembaruan.
Identifikasi API yang tidak direkomendasikan
Gunakan kubectl
Jalankan perintah berikut untuk memeriksa apakah direktori terkait containerd dipasang ke pod di kluster:
Anda harus terlebih dahulu menginstal kubectl dan jq di kluster Anda. Untuk menginstal jq, jalankan perintah yum install jq.kubectl get pods --all-namespaces -o json |
jq -r '.items[] |
select(.spec.volumes[]?.hostPath.path as $p |
["/", "/var", "/var/","/var/run", "/var/run/",
"/var/run/containerd", "/var/run/containerd/",
"/var/run/containerd/containerd.sock",
"/run", "/run/", "/run/containerd", "/run/containerd/",
"/run/containerd/containerd.sock"] | index($p)) |
.metadata.namespace + "/" + .metadata.name'Gunakan ctr
Jika containerd menggunakan API yang tidak direkomendasikan, Anda dapat menjalankan perintah ctr deprecations list berikut untuk mencantumkan API yang tidak direkomendasikan:
ctr deprecations listIdentifikasi gambar Docker dalam format Schema 1
ctr --namespace k8s.io images list 'labels."io.containerd.image/converted-docker-schema1"'Metode pembaruan
Anda harus terlebih dahulu merujuk ke Pembaruan manual kluster ACK untuk memperbarui versi Kubernetes bidang kontrol kluster ke 1.33 atau yang lebih baru. Kemudian, merujuk ke Perbarui pool node untuk memperbarui containerd.
FAQ
Apakah pembaruan memengaruhi bisnis saya?
Rujuk ke Perbarui pool node untuk memperbarui containerd. Saat Anda memperbarui containerd dengan memperbarui pool node, pembaruan di tempat dilakukan secara default. Pembaruan di tempat tidak me-restart kontainer. Oleh karena itu, bisnis Anda dapat berjalan seperti biasa.
Setelah saya memperbarui containerd dari V1.6 ke V2.1, apakah saya bisa membatalkan pembaruan?
Tidak, Anda tidak dapat membatalkan containerd dari V2.1 ke V1.6. API shim-v3 diperkenalkan di containerd V2.1. API shim-v3 tidak dapat dikembalikan ke API shim-v2 di containerd 1.6.
Apakah kehilangan data terjadi saat saya memperbarui containerd dari V1.6 ke V2.1?
Jika Anda mengikuti instruksi di Perbarui pool node untuk memperbarui containerd, pembaruan di tempat dilakukan secara default. Dalam hal ini, containerd 2.1 menggunakan direktori data asli, sehingga tidak menyebabkan kehilangan data.