containerd

containerd是一个容器[[运行时(runtime)]]。它强调简单性、健壮性和可移植性。containerd可以在宿主机中管理完整的生命周期,包括容器镜像的传输和存储、容器的执行和管理、存储和网络等。


containerd跟[[Docker/Docker]]的区别

containerd是从Docker中分享出来的一个项目,可以作为一个底层容器运行时

K8S CRI

k8s发布了CRI(Container Runtime Interface),统一了容器运行时接口,凡是支持CRI的容器运行时,都可以做为K8S的底层容器运行时。

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

如果使用containerd作为K8S的容器运行时,由于containerd内置CRI插件,kubelet可以直接调用containerd。使用containerd不仅性能提高了(调用链变短),而且资源占用也会变小(Docker不单单是一个容器运行时,它还具有大量其他功能)。

CRI安装

[[containerd#安装crictl]]


containerd的使用

containerd有三款控制命令,分别是

安装

安装ctr

如果使用包管理器安装完containerd就会自带安装,如果是二进制安装,参考containerd二进制安装,ctr包含在containerd的二进制安装包中[[containerd#安装containerd]]

安装crictl

下载地址arrow-up-right

  • 使用wget :

  • 使用curl:

安装nerdctl

二进制包下载地址arrow-up-right

containerd的安装

官方下载地址arrow-up-right 安装参考文档arrow-up-right

二进制安装

安装containerd

以Linux平台为例:

containerd.service内容示例

安装runc

runc下载地址arrow-up-right

安装CNI插件

下载地址arrow-up-right

包管理工具安装

CentOS

Ubuntu

Debian

从Docker环境切换到containerd

错误处理

最后更新于