Files
k8s-note/虚拟机安装/二、安装容器运行时.conf
2025-10-09 23:37:29 +08:00

82 lines
4.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Containerd 默认位置详解
-软件本身- -位置- -说明-
containerd 二进制文件 /usr/local/bin/containerd containerd 主程序
containerd 配置文件 /etc/containerd/config.toml containerd 配置文件
containerd 服务文件 /etc/systemd/system/containerd.service systemd 服务单元文件
containerd 数据目录 /var/lib/containerd 存储容器和镜像数据
- 容器镜像 /var/lib/containerd/io.containerd.content.v1.content 存放所有拉取下来的容器镜像的内容(文件层)
- 容器文件系统 /var/lib/containerd/io.containerd.snapshotter.v1.overlayfs 存放容器运行时的文件系统数据
- 镜像元数据 /var/lib/containerd/io.containerd.metadata.v1 存放镜像的元数据信息,如标签、创建时间等
- 容器状态 /var/lib/containerd/io.containerd.state.v1 存放容器的运行状态信息
- 快照存储 /var/lib/containerd/io.containerd.snapshot.v1 存放容器的快照数据
持久化卷 (Volumes) /var/lib/kubelet/pods/<pod-id>/volumes/<volume-name> 存放 Kubernetes 持久化卷数据
containerd 日志文件 /var/log/containerd 日志文件位置(如果配置了日志)
containerd 插件目录 /usr/local/lib/containerd 存放 containerd 插件
containerd.sock Unix 套接字文件 /run/containerd/containerd.sock 用于与 containerd 通信的套接字文件
containerd-shim 服务文件 /etc/systemd/system/containerd-shim@.service 用于管理容器生命周期的服务单元文件
containerd-shim 日志文件 /var/log/containerd-shim shim 的日志文件位置(如果配置了日志)
containerd-shim 数据目录 /var/lib/containerd-shim shim 存储数据的位置
containerd-shim 插件目录 /usr/local/lib/containerd-shim 存放 containerd-shim 插件
containerd-shim Unix 套接字文件 /run/containerd-shim/<container_id>.sock 用于与特定容器通信的套接字文件
# 方案规划:
Containerd 数据目录:从 /var/lib/containerd 迁移到 /data/containerd/lib。
Kubelet 卷目录:从 /var/lib/kubelet 迁移到 /data/kubelet。我们将通过创建一个符号链接 (Symbolic Link) 来实现,这是最简单、最可靠的方法。
## 步骤:
# 安装 Containerd
# 1. 安装所需的依赖包
dnf install -y yum-utils device-mapper-persistent-data lvm2
# 2. 添加 Docker 官方的 yum 仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 3. 安装 Containerd 软件包 (我们不需要完整的 Docker 引擎)
dnf install -y containerd.io
# 建自定义数据目录
mkdir -p /data/containerd/lib
mkdir -p /data/kubelet
# 生成默认配置文件
containerd config default | tee /etc/containerd/config.toml
## 修改配置文件
# 编辑 /etc/containerd/config.toml 文件,进行以下修改:
# 1. 数据目录:将 root 和 state 指向我们的自定义路径
sed -i 's|root = "/var/lib/containerd"|root = "/data/containerd/lib"|g' /etc/containerd/config.toml
sed -i 's|state = "/run/containerd"|state = "/data/containerd/state"|g' /etc/containerd/config.toml
# 2. SystemdCgroup将其设置为 true这是 Kubernetes 推荐的配置,可以更好地与系统的 cgroup 管理器集成。
sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml
# 3. 换阿里云的镜像源
sed -i 's#sandbox_image = "registry.k8s.io/pause:3.8"#sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.10.1"#g' /etc/containerd/config.toml
# 保存并关闭文件
# 为 Kubelet 卷目录创建符号链接
# 1. 如果 /var/lib/kubelet 目录已存在,先删除它
rm -rf /var/lib/kubelet
# 2. 创建一个从默认路径到我们自定义路径的符号链接
ln -s /data/kubelet /var/lib/kubelet
## 启动并设置 Containerd 开机自启
# 重新加载 systemd 配置
systemctl daemon-reload
# 启动 containerd 服务
systemctl start containerd
# 设置 containerd 开机自启
systemctl enable containerd
# 重启 containerd 服务
systemctl restart containerd
# 查看 containerd 服务状态,确保其为 active (running)
systemctl status containerd