CentOS7安装containerd环境
容器引擎
容器引擎是Kubernetes最重要的组件之一,负责管理镜像和容器的生命周期。Kubelet通过Container Runtime Interface (CRI) 与容器引擎交互,以管理镜像和容器。Containerd和Docker都是容器引擎。
Containerd和Docker调用链区别
-
Docker(Kubernetes 1.23及以下版本):
kubelet --> docker shim (在kubelet 进程中) --> docker --> containerd
-
Docker(Kubernetes 1.24及以上版本社区方案):
kubelet --> cri-dockerd (kubelet使用cri接口对接cri-dockerd) --> docker–> containerd
-
Containerd:
kubelet --> cri plugin(在containerd进程中) --> containerd
其中Docker虽增加了swarm cluster、docker build、docker API等功能,但也会引入一些bug,并且与Containerd相比,多了一层调用,因此Containerd被认为更加节省资源且更安全。
安装步骤
第1步:安装containerd
containerd下载地址:
https://github.com/containerd/containerd/releases
解压至/usr/local
目录
tar Czxvf /usr/local/ containerd-1.7.0-linux-amd64.tar.gz
生成默认配置文件
mkdir /etc/containerd
containerd config default > /etc/containerd/config.toml
修改部分配置,添加镜像加速地址
[plugins."io.containerd.grpc.v1.cri"]
sandbox_image = "registry.aliyuncs.com/k8sxio/pause:3.8"
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
endpoint = ["https://jsiyxhlk.mirror.aliyuncs.com"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."k8s.gcr.io"]
endpoint = ["https://registry.aliyuncs.com/k8sxio"]
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup = true
containerd.service下载地址:
https://raw.githubusercontent.com/containerd/containerd/main/containerd.service
移动至/usr/lib/systemd/system
目录
wget -P /usr/lib/systemd/system https://raw.githubusercontent.com/containerd/containerd/main/containerd.service
systemctl daemon-reload
systemctl enable --now containerd
第2步:安装runc
下载地址:
https://github.com/opencontainers/runc/releases
将其安装
install -m 755 runc.amd64 /usr/local/sbin/runc
第3步:安装CNI插件
下载地址:
https://github.com/containernetworking/plugins/releases
解压至/opt/cni/bin
目录
mkdir -p /opt/cni/bin
tar Cxzvf /opt/cni/bin cni-plugins-linux-amd64-v1.1.1.tgz