containerd
目录
containerd
摘自:https://zhuanlan.zhihu.com/p/356037350
containerd 是一个工业级标准的容器运行时,它强调简单性、健壮性和可移植性。containerd 可以在宿主机中管理完整的容器生命周期,包括容器镜像的传输和存储、容器的执行和管理、存储和网络等。
简介
Docker vs containerd
containerd 是从 Docker 中分离出来的一个项目,可以作为一个底层容器运行时,现在它成了 Kubernete 容器运行时更好的选择。
不仅仅是 Docker,还有很多云平台也支持 containerd 作为底层容器运行时:
K8S CRI
K8S 发布 CRI(Container Runtime Interface),统一了容器运行时接口,凡是支持 CRI 的容器运行时,皆可作为 K8S 的底层容器运行时。
K8S 为什么要放弃使用 Docker 作为容器运行时,而使用 containerd 呢?
如果你使用 Docker 作为 K8S 容器运行时的话,kubelet 需要先要通过 dockershim
去调用 Docker,再通过 Docker 去调用 containerd。
如果你使用 containerd 作为 K8S 容器运行时的话,由于 containerd 内置了 CRI
插件,kubelet 可以直接调用 containerd。
使用 containerd 不仅性能提高了(调用链变短了),而且资源占用也会变小(Docker 不是一个纯粹的容器运行时,具有大量其他功能)。
快速入门
如果你之前用过 Docker,你只要稍微花 5 分钟就可以学会 containerd 了
- 其实只要把我们之前使用的
docker
命令改为crictl
命令即可操作 containerd,比如查看所有运行中的容器;
|
|
- 查看所有镜像;
|
|
- 进入容器内部执行 bash 命令,这里需要注意的是只能使用容器 ID,不支持使用容器名称;
|
|
- 查看容器中应用资源占用情况,可以发现占用非常低。
|
|