k8s 使用Docker和Containerd对比分析

目录

[k8s 使用Docker和Containerd对比分析](#k8s 使用Docker和Containerd对比分析)

[互动1:docker build构建的镜像和containerd镜像通用吗?](#互动1:docker build构建的镜像和containerd镜像通用吗?)

互动2:k8s1.24之前版本和1.24及1.24之后版本区别?


k8s 使用Docker和Containerd对比分析

如果你使用Docker作为K8S容器运行时的话,kubelet需要先要通过dockershim去调用Docker,再通过Docker去调用containerd。

如果你使用containerd作为K8S容器运行时的话, kubelet可以直接调用containerd。 使用containerd不仅性能提高了(调用链变短了),而且资源占用也会变小(Docker不是一个纯粹的容器运行时,具有大量其他功能)。

调用链如下:

Docker 作为 k8s 容器运行时,调用关系如下: kubelet --> docker shim (在 kubelet 进程中) --> dockerd --> containerd

Containerd 作为 k8s 容器运行时,调用关系如下: kubelet --> cri plugin(在 containerd 进程中) --> containerd

互动1:docker build构建的镜像和containerd镜像通用吗?

答:通用的,docker save -o 生成的镜像文件,可以基于ctr --n=k8s.io images import 导出来 [root@xianchaomaster1 ~]# docker save -o centos centos:latest

[root@xianchaomaster1 ~]# ctr -n=k8s.io images import centos

互动2:k8s1.24之前版本和1.24及1.24之后版本区别?

答:K8s1.24之前版本大多数在用docker作为容器,K8s1.24之后版本大多数在用containerd作为容器 如果k8s用docker做容器运行时,需要用docker pull 拉取镜像,如果k8s用containerd做容器运行时,需要用ctr --n=k8s.io images pull 拉取镜像

相关推荐
追风林32 分钟前
mac 本地 docker 安装 kafka
macos·docker·kafka
奔跑中的小象2 小时前
低版本 Linux 系统通过二进制方式升级部署高版本 Docker
linux·docker
最数据2 小时前
收集了一些docker修改镜像源地址
docker·容器·镜像源·国内源地址
云上艺旅3 小时前
K8S学习之基础二十四:k8s的持久化存储之pv和pvc
学习·云原生·容器·kubernetes
艾思科蓝 AiScholar3 小时前
【 IEEE出版 | 快速稳定EI检索 | 往届已EI检索】2025年储能及能源转换国际学术会议(ESEC 2025)
人工智能·计算机网络·自然语言处理·数据挖掘·自动化·云计算·能源
人间凡尔赛3 小时前
VSCode-Server 在 Linux 容器中的手动安装指南
linux·运维·服务器·docker
Sans_3 小时前
初识Docker-Compose(包含示例)
后端·docker·容器
ZStack开发者社区4 小时前
从公有云迁移到ZStack私有云:阿维塔汽车如何实现IT架构优化
云计算·汽车
Java程序之猿4 小时前
Centos 安装docker,docker-compose
linux·docker·centos
孔令飞4 小时前
04 | 初始化 fastgo 项目仓库
开发语言·ai·云原生·golang·kubernetes