容器服务 Kubernetes 版 ACK(Container Service for Kubernetes)支持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 |