一、什么是 containerd
Containerd 是一个工业级标准的容器运行时,它强调简单性、健壮性和可移植性。Containerd 可以在宿主机中管理完整的容器生命周期,核心功能有:
- 管理容器的生命周期(从创建容器到销毁容器)
- 拉取/推送容器镜像
- 存储管理(管理镜像及容器数据的存储)
- 调用 runC 运行容器(与 runC 等容器运行时交互)
- 管理容器网络接口及网络
二、安装并运行 containerd
官网安装步骤
从官网下载 containerd-<VERSION>-<OS>-<ARCH>.tar.gz
包,并解压到 /usr/local
目录:
$ tar Cxzvf /usr/local containerd-1.6.2-linux-amd64.tar.gz
bin/
bin/containerd-shim-runc-v2
bin/containerd-shim
bin/ctr
bin/containerd-shim-runc-v1
bin/containerd
bin/containerd-stress
可以使用 systemd
启动 containerd
服务,从 https://raw.githubusercontent.com/containerd/containerd/main/containerd.service 下载 containerd.service
并放置到 /usr/local/lib/systemd/system/containerd.service
,使用如下命令运行:
systemctl daemon-reload
systemctl enable --now containerd
containerd 运行依赖 runc,可以从 https://github.com/containernetworking/plugins/releases 下载 cni-plugins-<OS>-<ARCH>-<VERSION>.tgz
包,并把 runc 文件放置到 /usr/local/sbin/runc
路径下:
$ install -m 755 runc.amd64 /usr/local/sbin/runc
三、containerd 上下游生态
北向:containerd通过实现Kubernetes的CRI(容器运行时接口)接口与Kubernetes进行交互
南向:containerd通过OCI(开放容器标准)与runc进行交互
四、containerd 源码分析
可见后续博客的源码分析内容。