无法重新启动 containerd.service:未找到设备

Failed to restart containerd.service: Unit not found

我在 CentOS 7.9 中按照以下步骤安装了 containerd 1.5.4:

wget -c https://github.com/containerd/containerd/releases/download/v1.5.4/containerd-1.5.4-linux-amd64.tar.gz
tar -zxvf containerd-1.5.4-linux-amd64.tar.gz -C /
mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml

我遵循了 here 的文档并根据它们创建了配置。但是当我尝试启动容器时:

[root@iZuf62lgwih3vksz3640gnZ sysctl.d]# systemctl start containerd
Failed to start containerd.service: Unit not found.

我应该怎么做才能解决这个问题?

主要问题是您只复制二进制文件,没有创建任何系统服务。

tar 命令中使用 -C / 标志时要小心。在我的 CentOS 7 机器上,前两个命令:

wget -c https://github.com/containerd/containerd/releases/download/v1.5.4/containerd-1.5.4-linux-amd64.tar.gz
tar -zxvf containerd-1.5.4-linux-amd64.tar.gz -C /

导致覆盖 /bin 目录,这破坏了 OS。

回到问题,您似乎混合了两种不同的安装 containerd 软件包的说明。您在问题中提到的来自官方 Kubernetes wiki 的 instructions 非常先进,值得关注。试试看:

第 1 步。从官方 Docker 存储库安装 containerd.io 软件包:

yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y containerd.io

步骤 2. 配置 containerd:

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

步骤 3. 重启 containerd:

systemctl restart containerd