当前位置: 首页 > article >正文

Docker、containerd、安全沙箱、社区Kata Containers运行对比

大家看了解决有意义、有帮助记得点赞加关注!!!

containerd、安全沙箱和Docker三种运行对比。

本文通过对比三种运行时的实现和使用限制、部署结构,帮助您根据需求场景了解并选择合适的容器运行。

一、容器运行时实现和使用限制对比

特性

containerd运行时

安全沙箱运行时

Docker运行时(已停止维护)

集群类型

  • ACK托管集群

  • ACK专有集群

  • ACK Edge集群

  • ACK托管集群

  • ACK专有集群

所有集群类型

集群版本

1.31及以下版本

1.31及以下版本

1.22及以下版本

说明

建议您升级Docker运行时为containerd运行时。详细信息,请参见将节点容器运行时从Docker迁移到containerd。

节点型号

  • ECS

  • 用户自有节点(ACK Edge集群)

仅适用于弹性裸金属服务器实例规格

ECS

节点OS

容器服务 Kubernetes 版提供的ContainerOS、Alibaba Cloud Linux 3、Ubuntu、Windows等操作系统的公共镜像。详细信息请参见操作系统。

Alibaba Cloud Linux定制版

  • Alibaba Cloud Linux

  • CentOS

容器引擎

containerd

containerd

Docker

监控

支持

支持

支持

容器日志文件采集

支持

手动支持(Sidecar)

支持

容器标准输出采集

支持

支持

支持

RuntimeClass

不支持

支持(runV)

不支持

Pod调度

无需配置

配置如下:

  • Kubernetes 1.14.x版本中必须为nodeSelector增加以下配置。

    alibabacloud.com/sandboxed-container: Sandboxed-Container.runv
  • Kubernetes 1.16.x以及更高版本无需额外配置。

无需配置

HostNetwork

支持

不支持

支持

节点数据盘

可选

必选(不小于200 GiB)

可选

网络插件

  • Flannel

  • Terway(ACK Edge集群除外)

  • Flannel

  • terway-eniip:仅支持非IPVlan且非独占弹性网卡模式的terway-eniip。

  • Flannel

  • Terway

kube-proxy代理模式

  • iptables

  • IPVS

  • iptables

  • IPVS

  • iptables

  • IPVS

存储插件

CSI Plugin(ACK Edge集群除外)

CSI Plugin

CSI Plugin

容器RootFS

OverlayFS

配置磁盘Quota的OverlayFS

OverlayFS

说明

  • 不支持同一节点同时部署Docker和安全沙箱两种运行时。

  • 集群内可以通过创建不同节点池来实现Docker运行时节点和安全沙箱运行时节点混合部署。

  • 关于Sidecar配置,请参见通过Sidecar-CRD方式采集容器文本日志。

二、运行时部署结构对比

运行时

部署结构

Docker

kubelet
└── dockerd
    └── containerd
        └── containerd-shim
            └── runC容器

containerd

kubelet
└── containerd
    └── containerd-shim
        └── runC容器

安全沙箱v2

kubelet
├── (CRI) containerd
│   ├── containerd-shim
│   │   └── runC 容器
│   └── containerd-shim-runv2
│       └── runV 安全沙箱容器

三、Docker和containerd两种容器引擎常用命令对比

Docker运行时和安全沙箱运行时的容器引擎分别是Docker和containerd,各自具有独特的命令行工具来管理镜像和容器。两种容器引擎常用命令对比如下。

命令

containerd

Docker

crictl(推荐)

ctr

docker

查看容器列表

crictl ps

ctr -n k8s.io c ls

docker ps

查看容器详情

crictl inspect <container>

ctr -n k8s.io c info <container>

docker inspect <container>

查看容器日志

crictl logs <container>

N/A

docker logs <container>

容器内执行命令

crictl exec <container>

N/A

docker exec <container>

挂载容器

crictl attach <container>

N/A

docker attach <container>

显示容器资源使用情况

crictl stats <container>

N/A

docker stats <container>

创建容器

crictl create <container>

ctr -n k8s.io c create <container>

docker create <container>

启动容器

crictl start <container>

ctr -n k8s.io run <container>

docker start <container>

停止容器

crictl stop <container>

N/A

docker stop <container>

删除容器

crictl rm <container>

ctr -n k8s.io c del <container>

docker rm <container>

查看镜像列表

crictl images

ctr -n k8s.io i ls <image>

docker images

查看镜像详情

crictl inspecti <image>

N/A

docker inspect <image>

拉取镜像

crictl pull <image>

ctr -n k8s.io i pull <image>

docker pull <image>

推送镜像

N/A

ctr -n k8s.io i push <image>

docker push <image>

删除镜像

crictl rmi <image>

ctr -n k8s.io i rm <image>

docker rmi <image>

查看Pod列表

crictl pods

N/A

N/A

查看Pod详情

crictl inspectp <pod name>

N/A

N/A

启动Pod

crictl runp <pod name>

N/A

N/A

停止Pod

crictl stopp <pod name>

N/A

N/A

四、ACK安全沙箱和社区Kata Containers对比

ACK安全沙箱相比社区Kata Containers,在性能上面具有较大优势,如下表所示。

性能

性能分类

ACK安全沙箱v2

社区Kata Containers

沙箱启动速度

约150ms

约500ms

沙箱额外开销

容器RootFS

virtio-fs,性能:☆☆☆☆

9pfs,性能:☆

容器存储卷

HostPath/EmptyDir

virtio-fs,性能:☆☆☆☆

云盘块存储

virtio-fs,性能:☆☆☆☆

NAS文件存储

  • virtio-fs(默认),性能:☆☆☆☆

  • 直挂沙箱,性能:☆☆☆☆☆

OSS对象存储

virtio-fs,性能:☆☆☆☆

网络插件

  • Terway:比Flannel网络性能提升了20%~30%,支持NetworkPolicy,带宽限速等。更多特性请参见Terway网络插件。

  • Flannel:支持VPC路由。

Flannel

监控告警

  • 增强了安全沙箱Pod的磁盘和网络监控指标。

  • 默认集成了阿里云云监控,可方便地配置集群的监控告警。

缺失安全沙箱Pod的磁盘和网络监控指标。

稳定性

☆☆☆☆☆

☆☆


http://www.kler.cn/a/451105.html

相关文章:

  • Java重要面试名词整理(四):并发编程(下)
  • 【Yonghong 企业日常问题 06】上传的文件不在白名单,修改allow.jar.digest属性添加允许上传的文件SH256值?
  • clickhouse复现修复 结构需要清理 错误 structure need clean
  • 第22天:信息收集-Web应用各语言框架安全组件联动系统数据特征人工分析识别项目
  • 国自然面上项目分享|基于人工智能和病理组学的早癌筛查算法研究|基金申请·24-12-24
  • JavaScript中的Set、Map、WeakSet和WeakMap
  • 【基于rust-wasm的前端页面转pdf组件和示例】
  • ant design学习记录:响应式尺寸头像大小 Avatar
  • react杂乱笔记(一)
  • 【数据库】SQL应该如何针对数据倾斜问题进行优化
  • 部署开源大模型的硬件配置全面指南
  • 【es6复习笔记】迭代器(10)
  • Web入门常用标签、属性、属性值
  • 学习ASP.NET Core的身份认证(基于JwtBearer的身份认证2)
  • 数据结构与算法易错问题总结
  • 云备份项目--工具类编写
  • Unity AVPro Video使用和WebGL播放视频流
  • 谷歌浏览器的网络安全检测工具介绍
  • 【Linux网络编程】第十三弹---构建HTTP响应与请求处理系统:从HttpResponse到HttpServer的实战
  • 【Web】2024“国城杯”网络安全挑战大赛决赛题解(全)
  • 基于谱聚类的多模态多目标浣熊优化算法(MMOCOA-SC)求解ZDT1-ZDT4,ZDT6和工程应用--盘式制动器优化,MATLAB代码
  • vite + vue3 + tailwind 启动之后报错
  • 回归预测 | MATLAB实现CNN-LSSVM卷积神经网络结合最小二乘支持向量机多输入单输出回归预测
  • 【es6复习笔记】rest参数(7)
  • Unittest02|TestSuite、TestRunner、HTMLTestRunner、处理excel表数据、邮件接收测试结果
  • Java爬虫获取1688 item_search_img接口详细解析