docker、containerd的关系

简介

为了防止docker一家独大,docker当年的实现被拆分出了几个标准化的模块,标准化的目的是模块是可被其他实现替换的,不由任何一个厂商控制。
docker由 docker-client ,dockerd,containerd,docker-shim,runc组成,所以containerd是docker的基础组件之一

下面是从containerd引过来的一张图
docker、containerd的关系_第1张图片

从k8s的角度看,可以选择 containerd 或 docker 作为运行时组件:Containerd 调用链更短,组件更少,更稳定,占用节点资源更少

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

引用

https://containerd.io/
https://cloud.tencent.com/document/product/457/35747
https://jiajunhuang.com/articles/2018_12_22-docker_components.md.html

你可能感兴趣的:(云计算)