Runtime 安装

Containerd作为Runtime

由于 Kubernetes 1.24 以上版本将不再直接支持 Docker,因此需要将 Kubernetes 的 Runtime 改为 Containerd。

安装 Docker 时会自动安装 Containerd

1. 配置Docker源

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2.安装docker-ce

yum install -y docker-ce docker-ce-cli

由于并不是每个节点都需要 Docker 引擎,因此无须启动 Docker,只需要配置和启动 Containerd 即可。

3. 配置 Containerd 所需的模块

echo 'overlay
br_netfilter' > /etc/modules-load.d/containerd.conf

4. 加载模块

modprobe overlay
modprobe br_netfilter

5. 配置 Containerd 所需的内核

echo 'net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1' > /etc/sysctl.d/99-kubernetes-cri.conf

加载内核:

sysctl --system

6. 配置 Containerd 的配置文件

mkdir -p /etc/containerd
containerd config default | tee /etc/containerd/config.toml

所有节点将 Containerd 的 Cgroup 改为 Systemd:

vim /etc/containerd/config.toml
  • 找到 containerd.runtimes.runc.options,修改 SystemdCgroup = true

  • 所有节点将 sandbox_image 的 Pause 镜像改成符合自己版本的地址:registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6

7. 启动 Containerd,并配置开机自启动

 systemctl daemon-reload
 systemctl enable --now containerd

检查 containerd 是否启动成功:

systemctl status containerd

8. 配置 crictl 客户端连接的 Runtime 位置

echo 'runtime-endpoint: unix:///var/run/containerd/containerd.sock
image-endpoint: unix:///var/run/containerd/containerd.sock
timeout: 10
debug: false' > /etc/crictl.yaml

最后更新于