- 云原生Kubernetes全栈架构师实战
- 杜宽
- 154字
- 2023-09-15 17:43:37
1.3.1 Containerd作为Runtime
由于Kubernetes 1.24以上版本将不再直接支持Docker,因此需要将Kubernetes的Runtime改为Containerd。因为安装Docker时会自动安装Containerd,并且后面的课程也要使用到Docker,所以还是在每个节点安装Docker。
所有节点安装docker-ce-20.10:
# yum install docker-ce-20.10.* docker-ce-cli-20.10.* -y
由于并不是每个节点都需要Docker引擎,因此无须启动Docker,只需要配置和启动Containerd即可。
首先配置Containerd所需的模块(所有节点):
# cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf overlay br_netfilter EOF
所有节点加载模块:
# modprobe -- overlay # modprobe -- br_netfilter
所有节点配置Containerd所需的内核:
# cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-ip6tables = 1 EOF
所有节点加载内核:
# sysctl --system
所有节点配置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,如图1.1所示。
图1.1 Containerd Cgroup配置
所有节点将sandbox_image的Pause镜像改成符合自己版本的地址:registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6,如图1.2所示。
图1.2 Containerd Pause镜像配置
所有节点启动Containerd,并配置开机自启动:
# systemctl daemon-reload # systemctl enable --now containerd
所有节点配置crictl客户端连接的Runtime位置:
# cat > /etc/crictl.yaml <<EOF runtime-endpoint: unix:///run/containerd/containerd.sock image-endpoint: unix:///run/containerd/containerd.sock timeout: 10 debug: false EOF