containerd
Containerd官方网站
containerd是一种容器虚拟化技术,从docker中剥离出来,形成开放容器接口(OCI)标准的一部分。containerd是真正管控容器的一个进程,执行容器的时候用的是runc。
docker对容器的管理和操作基本都是通过containerd完成的。Containerd是一个工业级标准的容器运行时,它强调简单性、健壮性和可移植性。Containerd可以在宿主机中管理完整的容器生命周期:容器镜像的传输和存储、容器的执行和管理、容器的网络管理等。
k8s1.20版本之后建议废弃掉docker,直接使用containerd
K8s为什么要放弃使用Docker作为容器运行时,而使用containerd呢?
如果你使用Docker作为k8s容器运行时的话,kubelet需要先通过dockershim去调用Docker,再通过Docker去调用containerd。
如果你使用containerd作为k8s容器运行时的话,由于containerd内置了CRI插件,kubelet可以直接调用containerd。
使用containerd不仅性能提高了(调用链变短了),而且资源占用也会变小(Docker不是一个纯粹的容器运行时,具有大量其他功能)