Kubernetes 搭配 Containerd 安装与配置

上次写了 Kubernetes 搭配 docker 使用,发现 kubernetes 目前对完整 docker 的支持不怎么样, docker 也包括 containerd,大家都是干类似工作的,而且安装 docker 的官方安装包,还有 containerd 的大部分工具,试试 containerd。

与上一篇前置相同,这里直接复制命令,具体情节请查看Debian 12 安装 Kubernetes(k8s) + docker ,配置主从节点

#准备

更新系统到最新,然后移除不再需要的软件,清理无用的安装包。

sudo apt update && sudo apt full-upgrade -y
sudo apt autoremove
sudo apt autoclean

包括但不限于关闭防火墙,关闭 SELinux,关闭 SWAP 分区,开启 Ip 转发,加载内核模块。

# 关闭防火墙
sudo ufw disable
# 关闭 swap
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
# 为 cri 准备
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

sudo modprobe overlay
sudo modprobe br_netfilter

# sysctl params required by setup, params persist across reboots
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

# Apply sysctl params without reboot
sudo sysctl --system

#安装 containerd

sudo apt install containerd.io

如果使用 apt 安装,默认 cri 插件是处于 disabled 状态,修改配置,把 cri 从disabled_plugins 列表中移除,或者直接恢复 containerd 的默认配置

containerd config default | sudo tee /etc/containerd/config.toml

并且将 SystemdCgroup 改为 true。

[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
  ...
  [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
    SystemdCgroup = true

重启服务。

sudo systemctl restart containerd