四、容器运行时Docker与Containerd对比、优缺点,Containerd安装、常用客户端及命 令使用简介
运行时简介
OCI(Open Container Initiative):2015年Google、docker、Redhat、IBM共同成立,定义了运行标准和镜像 标准。
CRI(Container Runtime Interface):2016 年12月Kubernetes 发布 CRI(容器运行时接口), 可以支持rkt等不 同的运行时。 CRI-O:由redhat发起并开源,用于替代docker成为kubernetes的运行时,2016年开发,2019年4月8号进入 CNCF孵化。
unix:///var/run/dockershim.sock( k8s version ≤1.23 default)--->unix:///var/run/docker.sock unix:///run/containerd/containerd.sock
unix:///run/crio/crio.sock unix:///var/run/cri-dockerd.sock
1.23- 使用docker作为运行时
1.24+ 使用containerd作为运行时 由containerd管理容器的
Containerd简介
Containerd与kubernetes的结 合可实现更快速的pod生命周 期管理(创建、更新、删除等), 对内存及CPU资源限制更严 格,系统IO性能也远高于 docker.
Containerd基于插件化设计, 方便后期配置变更与功能扩展。
2016年12月Docker公司宣布将 containerd并捐赠给 CNCF(2017年3月份加入 CNCF)。
2019年2月28成为CNCF的毕业项目。
Containerd在v1.0及以前版本(目前最新v1.6.8)将docker shim和docker daemon替换为cri-containerd+containerd,而在1.1版本时直接将 cri-containerd内置在Containerd中,简化为一个CRI插件,用于实现和kubelet的对接。
Containerd内置的CRI(container runtime interface)插件实现了Kubelet CRI接口中的Image Service和Runtime Service,通过内部接口管理容器和镜像,并通过CNI(container network interface)插件给Pod配置网络