Ubuntu24.04部署k8s集群 - 安装Containerd
Pluto Lv2

使用apt仓库安装

https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository

删除旧版本

1
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

设置apt仓库

1
2
3
4
5
6
7
8
9
10
11
12
13
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get -y update

安装Containerd.io

1
sudo  apt-get install -y containerd.io

启动

1
2
systemctl enable containerd
systemctl status containerd

修改配置

生成默认

1
containerd config default > /etc/containerd/config.toml

配置systemdcgroup 驱动

k8s官方推荐使用systemd类型的CgroupDriver

Containerd 1.x 版本:

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

Containerd versions 2.x 版本:

1
2
3
4
[plugins.'io.containerd.cri.v1.runtime'.containerd.runtimes.runc]
...
[plugins.'io.containerd.cri.v1.runtime'.containerd.runtimes.runc.options]
SystemdCgroup = true

修改pause源

1
2
3
4
[plugins."io.containerd.grpc.v1.cri"]
...
# sandbox_image = "k8s.gcr.io/pause:3.10"
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.10"

修改镜像源

  • 在 containerd 2.x 中
1
2
3
4
version = 3

[plugins."io.containerd.cri.v1.images".registry]
config_path = "/etc/containerd/certs.d"
  • 在 containerd 1.x 中
1
2
3
4
version = 2

[plugins."io.containerd.grpc.v1.cri".registry]
config_path = "/etc/containerd/certs.d"
1
2
3
4
5
6
7
8
9
mkdir -p /etc/containerd/certs.d/docker.io

cat > /etc/containerd/certs.d/docker.io/hosts.toml << EOF
server = "https://docker.io"

[host."https://docker.1ms.run"]
capabilities = ["pull", "resolve"]

EOF
1
systemctl restart containerd

测试拉取镜像

1
ctr images pull docker.io/library/nginx:latest --hosts-dir=/etc/containerd/certs.d

同步到其他节点

1
2
3
4
5
6
scp -r /etc/containerd ubuntu@k8s-node-01:/tmp
scp -r /etc/containerd ubuntu@k8s-node-02:/tmp

cp -r /tmp/containerd/* /etc/containerd/

systemctl restart containerd
  • 本文标题:Ubuntu24.04部署k8s集群 - 安装Containerd
  • 本文作者:Pluto
  • 创建时间:2025-08-12 17:19:10
  • 本文链接:https://blog.aoaostar.com/post/9441b2ae/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论