使用 containerd 不仅性能提高了(调用链变短了),而且资源占用也会变小(Docker 不是一个纯粹的
容器运行时,具有大量其他功能)。
调用链
Docker 作为 k8s 容器运行时,调用关系如下:
kubelet --> docker shim (在 kubelet 进程中) --> dockerd --> containerd
Containerd 作为 k8s 容器运行时,调用关系如下:
kubelet --> cri plugin(在 containerd 进程中) --> containerd
安装 docker 会自动把 containerd 安装出来,也可以通过如下命令直接安装 containerd。
需要配置 docker-ce.repo yum 源:
# yum install yum-utils -y
# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# yum install containerd -y
# systemctl enable containerd
# systemctl start containerd
初始化 Containerd 配置:
# containerd config default > /etc/containerd/config.toml
# systemctl enable containerd
# systemctl start containerd
替换 containerd 默认的 sand_box 镜像,编辑/etc/containerd/config.toml 文件:
sandbox_image = "k8s.gcr.io/pause:3.2" 替换成 registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2
应用配置并重新运行 containerd 服务
# systemctl daemon-reload
# systemctl restart containerd
# ctr images pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2
查看 k8s 命名空间下的镜像
ctr -n=k8s.io images ls
标签:--,containerd,配置,systemctl,yum,docker,k8s,安装
From: https://www.cnblogs.com/shunzi115/p/17525574.html