Container Service for Kubernetes (ACK) mendukung runtime kontainer berikut: containerd, Sandboxed-Container, dan Docker. Topik ini membandingkan runtime tersebut dari segi implementasi, keterbatasan, dan arsitektur penerapannya untuk membantu Anda memilih runtime kontainer yang sesuai dengan kebutuhan dan skenario Anda.
Perbandingan dari segi implementasi dan batasan
Fitur | containerd | Sandboxed-Container | Docker (pemeliharaan dihentikan) |
Jenis kluster |
|
| Semua jenis kluster ACK |
Versi Kubernetes | Versi 1.20 atau lebih baru | Kubernetes 1.16 atau lebih baru | Kubernetes 1.22 dan sebelumnya Catatan Kami menyarankan agar Anda melakukan migrasi ke containerd. Untuk informasi selengkapnya, lihat Migrasi dari Docker ke containerd. |
Jenis node |
| Hanya keluarga ECS Bare Metal Instance yang didukung | 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. |
| |
Mesin kontainer | containerd | containerd | Docker |
Pemantauan | Didukung | Didukung | Didukung |
Pengumpulan log kontainer | Didukung | Injeksi Manual (Sidecar) | Didukung |
Pengumpulan stdout kontainer | Didukung | Didukung | Didukung |
RuntimeClass | Tidak didukung | Didukung (runV) | Tidak didukung |
Penjadwalan Pod | Tidak perlu konfigurasi. | Anda harus menambahkan konfigurasi berdasarkan aturan berikut:
| Tidak perlu konfigurasi. |
HostNetwork | Didukung | Tidak didukung | Didukung |
Disk data node | Opsional | Wajib. Disk data harus berukuran minimal 200 GiB. | Opsional |
Plugin jaringan |
|
|
|
Modus kube-proxy |
|
|
|
Plugin volume | Plugin CSI (tidak termasuk Kluster ACK Edge) | Plugin CSI | Plugin CSI |
Sistem file root kontainer | OverlayFS | OverlayFS dengan konfigurasi kuota disk | OverlayFS |
Anda tidak dapat menerapkan Docker dan Sandboxed-Container pada node yang sama. Namun, Anda dapat membuat kelompok node berbeda untuk menjalankan node dengan runtime Docker dan node dengan runtime Sandboxed-Container secara bersamaan.
Sandboxed-Container diimplementasikan berdasarkan containerd. Saat Anda melihat informasi node Sandboxed-Container menggunakan
kubectl get nodeatau daftar node di Konsol, runtime node ditampilkan sebagai containerd.Untuk informasi selengkapnya, lihat Gunakan CRD untuk mengumpulkan log teks kontainer dalam mode Sidecar.
Perbandingan dari segi arsitektur penerapan
Runtime | Arsitektur penerapan |
Docker | |
containerd | |
Sandboxed-Container v2 | |
Perbandingan perintah umum yang disediakan oleh Docker Engine dan containerd
Runtime Docker dan runtime Sandboxed-Container masing-masing menggunakan Docker dan containerd sebagai mesin kontainer mereka, dengan antarmuka baris perintah masing-masing untuk mengelola citra dan kontainer. Tabel berikut mencantumkan perintah-perintah umum tersebut.
Operasi | containerd | Docker | |
crictl (disarankan) | ctr | docker | |
Kueri kontainer |
|
|
|
Kueri detail kontainer |
|
|
|
Kueri log kontainer |
| N/A |
|
Jalankan perintah dalam kontainer |
| N/A |
|
Sambungkan stdin, stdout, dan stderr lokal ke kontainer |
| N/A |
|
Kueri statistik penggunaan sumber daya |
| N/A |
|
Buat kontainer |
|
|
|
Jalankan kontainer |
|
|
|
Hentikan kontainer |
| ctr -n k8s.io task pause <container> |
|
Hapus kontainer |
|
|
|
Kueri citra |
|
|
|
Kueri detail citra |
| N/A |
|
Tarik citra |
|
|
|
Dorong citra | N/A |
|
|
Hapus citra |
|
|
|
Kueri Pod |
| N/A | N/A |
Kueri detail Pod |
| N/A | N/A |
Jalankan Pod |
| N/A | N/A |
Hentikan Pod |
| N/A | N/A |