Container Service for Kubernetes (ACK)支援containerd、Docker、安全沙箱三種運行時。本文通過對比三種運行時的實現和使用限制、部署結構,協助您根據需求情境選擇合適的容器運行時。
容器運行時實現和使用限制的對比
特性 | containerd運行時 | Docker運行時 | 安全沙箱運行時 |
叢集類型 |
| 所有叢集類型 |
|
叢集版本 | 1.31及以下版本 | 1.22及以下版本 說明 建議您升級Docker運行時為containerd運行時。詳細資料,請參見將節點容器運行時從Docker遷移到containerd。 | 1.31及以下版本 |
節點型號 |
|
| EBM |
節點OS |
|
| Alibaba Cloud Linux定製版 |
容器引擎 | containerd | Docker | containerd |
監控 | 支援 | 支援 | 支援 |
容器記錄檔採集 | 支援 | 支援 | 手動支援(Sidecar) |
容器標準輸出採集 | 支援 | 支援 | 支援 |
RuntimeClass | 不支援 | 不支援 | 支援(runV) |
Pod調度 | 無需配置 | 無需配置 | 配置如下:
|
HostNetwork | 支援 | 支援 | 不支援 |
exec/logs | 支援 | 支援 | 支援 |
節點資料盤 | 可選 | 可選 | 必選(不小於200 GiB) |
網路外掛程式 |
|
|
|
kube-proxy代理模式 |
|
|
|
儲存外掛程式 | CSI Plugin(ACK Edge叢集除外) | CSI Plugin | CSI Plugin |
容器RootFS | OverlayFS | OverlayFS | 配置磁碟Quota的OverlayFS |
不支援同一節點同時部署Docker和安全沙箱兩種運行時。
叢集內可以通過建立不同節點池來實現Docker運行時節點和安全沙箱運行時節點混合部署。
關於Sidecar配置,請參見通過Sidecar-CRD方式採集容器文本日誌。
運行時部署結構對比
運行時 | 部署結構 |
Docker |
|
containerd |
|
安全沙箱v2 |
|
Docker和containerd兩種容器引擎常用命令對比
Docker運行時和安全沙箱運行時的容器引擎分別是Docker和containerd,各自具有獨特的命令列工具來管理鏡像和容器。兩種容器引擎常用命令對比如下。
命令 | Docker | containerd | |
docker | crictl(推薦) | ctr | |
查看容器列表 |
|
|
|
查看容器詳情 |
|
|
|
查看容器日誌 |
|
| N/A |
容器內執行命令 |
|
| N/A |
掛載容器 |
|
| N/A |
顯示容器資源使用方式 |
|
| N/A |
建立容器 |
|
|
|
啟動容器 |
|
|
|
停止容器 |
|
| N/A |
刪除容器 |
|
|
|
查看鏡像列表 |
|
|
|
查看鏡像詳情 |
|
| N/A |
拉取鏡像 |
|
|
|
推送鏡像 |
| N/A |
|
刪除鏡像 |
|
|
|
查看Pod列表 | N/A |
| N/A |
查看Pod詳情 | N/A |
| N/A |
啟動Pod | N/A |
| N/A |
停止Pod | N/A |
| N/A |