containerd

更新时间:2025年3月19日 15:46 浏览:4443

官方网址

https://github.com/containerd/containerd

 

官方安装说明

https://github.com/containerd/containerd/blob/main/docs/getting-started.md

三种安装方式:二进制文件、apt、源码编译

 

二进制文件安装

 

安装 containerd

#!/bin/sh

wget https://github.com/containerd/containerd/releases/download/v1.7.14/containerd-1.7.14-linux-amd64.tar.gz
# wget https://nas.liu12.com/k8s/containerd/containerd-1.7.14-linux-amd64.tar.gz
 
tar Cxzvf /usr/local containerd-1.7.14-linux-amd64.tar.gz

安装包中已内置 k8s CRI

 

配置开机启动 containerd.service

#!/bin/sh

wget https://raw.githubusercontent.com/containerd/containerd/main/containerd.service
# wget https://nas.liu12.com/k8s/containerd/containerd.service

cp containerd.service /usr/local/lib/systemd/system/containerd.service
 
systemctl daemon-reload
 
systemctl enable containerd

 

优化配置 

#!/bin/sh

# 生成 containerd 默认配置文件
containerd config default > /etc/containerd/config.toml

# 修改容器存放目录
# mkdir -p  /data/containerd
# sed -i 's/root = "\/var\/lib\/containerd"/root = "\/data\/containerd"/g' /etc/containerd/config.toml

# 将 sandbox_image 改为阿里镜像,方便国内安装
sed -i 's/registry.k8s.io\/pause:/registry.aliyuncs.com\/google_containers\/pause:/g' /etc/containerd/config.toml


# 配置 systemd cgroup 驱动
# https://kubernetes.io/zh-cn/docs/setup/production-environment/container-runtimes/#containerd-systemd
sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml


# 重启 containerd
systemctl restart containerd

 

如果需要在国内从 docker.io 官方拉取镜像,可能会拉取失败,可指定 dooker.io 镜像

编辑 /etc/containerd/config.toml,

找到 plugins."io.containerd.grpc.v1.cri".registry.mirrors,在后边添加两行:

      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
          endpoint = ["https://xxx.xxx.com"]

systemctl restart containerd 重启 containerd 即可

 

containerd 依赖两个组件 runc 和 cni

安装 runc

#!/bin/sh

wget https://github.com/opencontainers/runc/releases/download/v1.1.12/runc.amd64
# wget https://nas.liu12.com:8443/k8s/runc/v1.1.12/runc.amd64

install -m 755 runc.amd64 /usr/local/sbin/runc

 

安装 cni

containerd 官方文档中要求安装 cni,主动安装 cni 容易出问题,可能是需要改 k8s 参数,

实际操作中k8s会自动创建 cni ,实践过多次,可以不安装,下面的代码仅供参考

#!/bin/sh

wget https://github.com/containernetworking/plugins/releases/download/v1.4.1/cni-plugins-linux-amd64-v1.4.1.tgz
# wget https://nas.liu12.com/k8s/cni/cni-plugins-linux-amd64-v1.4.1.tgz

mkdir -p /opt/cni/bin
 
tar Cxzvf /opt/cni/bin cni-plugins-linux-amd64-v1.4.1.tgz

 

 

apt 方式

 

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install 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 "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

sudo apt-get install containerd.io

systemctl enable containerd

apt 安装的方式也需要 优化配置,参考二进制安装方式

 

源码编译

 

 

crictl

安装 containerd 后,已内置了镜像管理工具 ctr

对于熟悉 docker  使用的初学者,可以使用  crictl 管理 containerd 镜像,与 docker 命令基本一样

 

官方安装说明:

https://github.com/kubernetes-sigs/cri-tools/blob/master/docs/crictl.md

#!/bin/sh
VERSION="v1.26.0" # check latest version in /releases page
wget https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-$VERSION-linux-amd64.tar.gz
# wget https://nas.liu12.com/k8s/crictl/crictl-$VERSION-linux-amd64.tar.gz
sudo tar zxvf crictl-$VERSION-linux-amd64.tar.gz -C /usr/local/bin
rm -f crictl-$VERSION-linux-amd64.tar.gz

# 配置 crictl 管理 containerd
cat >/etc/crictl.yaml <<EOF
runtime-endpoint: unix:///var/run/containerd/containerd.sock
image-endpoint: unix:///var/run/containerd/containerd.sock
timeout: 10
EOF

 

导航