Files
k8s-note/虚拟机安装/二、安装容器运行时.conf

82 lines
4.6 KiB
Plaintext
Raw Permalink Normal View History

2025-10-09 23:37:29 +08:00
# 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 管理器集成。
2025-10-09 23:37:29 +08:00
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