ACK mendukung containerd, Sandboxed-Container, dan Docker. Bandingkan model isolasi, batasan penggunaan, dan arsitektur penerapan untuk memilih runtime yang tepat bagi workload Anda.
Runtime Docker telah dihentikan. Jika kluster Anda menjalankan Docker, migrasikan ke containerd.
Cara runtime kontainer masuk dalam node Kubernetes
Runtime kontainer mengelola siklus hidup kontainer pada setiap node. kubelet berkomunikasi dengan runtime melalui Container Runtime Interface (CRI). Pilihan runtime menentukan model isolasi, jenis node yang didukung, serta alat CLI yang tersedia.
ACK mendukung runtime berikut:
-
containerd — Direkomendasikan untuk sebagian besar workload. Ringan, langsung kompatibel dengan CRI, dan tidak memerlukan daemon perantara.
-
Sandboxed-Container — Menggunakan VM ringan (runV) untuk menjalankan setiap Pod dalam kernel terisolasi.
-
Docker (dihentikan) — Migrasikan ke containerd.
Fitur dan batasan
|
Fitur |
containerd |
Sandboxed-Container |
Docker (maintenance dihentikan) |
|
Jenis kluster |
|
|
Semua jenis kluster ACK |
|
Versi Kubernetes |
1.20 atau lebih baru |
1.16 atau lebih baru |
1.22 dan sebelumnya |
|
Jenis node |
|
ECS |
|
|
Sistem operasi node |
Container Service for Kubernetes menyediakan gambar publik untuk sistem operasi seperti versi Alibaba Cloud Linux 3 yang dioptimalkan untuk kontainer, ContainerOS, Alibaba Cloud Linux 3, Ubuntu, dan Windows. Untuk informasi selengkapnya, lihat Sistem operasi. |
|
|
|
Engine kontainer |
containerd |
containerd |
Docker |
|
Pemantauan |
Didukung |
Didukung |
Didukung |
|
Pengumpulan log kontainer |
Didukung |
Injeksi sidecar manual. Lihat Gunakan CRD untuk mengumpulkan log teks kontainer dalam mode sidecar. |
Didukung |
|
Pengumpulan stdout kontainer |
Didukung |
Didukung |
Didukung |
|
RuntimeClass |
Tidak didukung |
Didukung (runV) |
Tidak didukung |
|
Penjadwalan Pod |
Tidak perlu konfigurasi. |
Tambahkan konfigurasi berikut:
|
Tidak perlu konfigurasi. |
|
HostNetwork |
Didukung |
Tidak didukung |
Didukung |
|
Disk data node |
Opsional |
Wajib. Minimal 200 GiB. |
Opsional |
|
Plugin jaringan |
|
|
|
|
Mode kube-proxy |
|
|
|
|
Plugin volume |
Plugin CSI (tidak termasuk kluster ACK Edge) |
Plugin CSI |
Plugin CSI |
|
Sistem file root kontainer |
OverlayFS |
OverlayFS (dengan kuota disk) |
OverlayFS |
Docker dan Sandboxed-Container tidak dapat berbagi node. Untuk menggunakan keduanya dalam satu kluster, buat kelompok node terpisah untuk masing-masing runtime.
Sandboxed-Container berjalan di atas containerd. Saat Anda memeriksa node dengan kubectl get node atau di Konsol ACK, runtime akan ditampilkan sebagai containerd.
Arsitektur penerapan
Rantai panggilan dari kubelet ke kontainer bervariasi tergantung pada runtime. Semakin sedikit lapisan, semakin rendah overhead dan kompleksitasnya.
|
Runtime |
Arsitektur penerapan |
|
Docker |
|
|
containerd |
|
|
Sandboxed-Container v2 |
|
containerd menghilangkan lapisan dockerd sehingga kubelet memiliki akses langsung ke CRI. Sandboxed-Container v2 memperluas containerd dengan containerd-shim-runv2, yang menjalankan Pod dalam VM ringan melalui runV untuk memberikan isolasi tingkat kernel bersama kontainer runC standar.
Perintah CLI untuk containerd dan Docker
containerd dan Docker menggunakan alat CLI yang berbeda. crictl direkomendasikan untuk containerd karena beroperasi pada level CRI. ctr merupakan alternatif tingkat lebih rendah dari containerd.
|
Operasi |
crictl (direkomendasikan untuk containerd) |
ctr (CLI tingkat rendah containerd) |
docker |
|
Daftar kontainer |
|
|
|
|
Periksa kontainer |
|
|
|
|
Lihat log kontainer |
|
N/A |
|
|
Jalankan perintah dalam kontainer |
|
N/A |
|
|
Menyambungkan ke kontainer |
|
N/A |
|
|
Lihat penggunaan resource |
|
N/A |
|
|
Buat kontainer |
|
|
|
|
Jalankan kontainer |
|
|
|
|
Hentikan kontainer |
|
ctr -n k8s.io task pause <container> |
|
|
Hapus kontainer |
|
|
|
|
Daftar image |
|
|
|
|
Periksa image |
|
N/A |
|
|
Tarik gambar |
|
|
|
|
Dorong image |
N/A |
|
|
|
Hapus image |
|
|
|
|
Daftar Pod |
|
N/A |
N/A |
|
Periksa Pod |
|
N/A |
N/A |
|
Jalankan Pod |
|
N/A |
N/A |
|
Hentikan Pod |
|
N/A |
N/A |