[k8s实战]Containerd 1.7.2 离线安装与配置全指南(生产级优化)

[k8s实战]Containerd 1.7.2 离线安装与配置全指南(生产级优化)

摘要:本文详细讲解在无外网环境下部署 Containerd 1.7.2 容器运行时的完整流程,涵盖二进制包安装、私有镜像仓库配置、Systemd服务集成等关键步骤,并提供生产环境调优建议。适用于Kubernetes集群、边缘计算等隔离场景。

一、环境准备与架构设计

1.1 系统要求

项目最低要求推荐配置
操作系统CentOS 7+/Ubuntu 18+CentOS 7.6+/Ubuntu 22.04 LTS
内核版本≥ 4.14≥ 5.4
磁盘空间≥ 1GBSSD + 50GB
架构支持x86_64ARM64(需对应包)

二、离线安装全流程

2.1 安装包处理

# 上传并解压二进制包(所有节点执行)
mkdir -p /root/containerd
tar -zxvf containerd-1.7.2-linux-amd64.tar.gz -C /root/containerd

# 复制可执行文件到系统路径
cp /root/containerd/bin/* /usr/bin/
cp /root/containerd/bin/ctr /usr/local/bin/

# 验证安装
containerd --version  # 应输出 containerd github.com/containerd/containerd v1.7.2

安装截图:
在这里插入图片描述

三、生产级配置调优

3.1 生成默认配置文件

mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml

3.2 关键配置修改

# 文件路径:/etc/containerd/config.toml

# 容器数据存储路径(根据磁盘规划调整)
root = "/data/containerd"  

# 启用systemd cgroup驱动(必须与K8S一致)
SystemdCgroup = true

# 配置私有镜像仓库(替换实际IP和端口)
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
  endpoint = ["http://192.167.14.119:5000"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."registry.k8s.io"]
  endpoint = ["http://192.167.14.119:5000"]

# 修改pause镜像地址(国内源)
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"

四、Systemd服务集成

4.1 创建服务文件

cat > /usr/lib/systemd/system/containerd.service <<EOF
[Unit]
Description=Containerd Container Runtime
Documentation=https://containerd.io
After=network.target

[Service]
ExecStartPre=/sbin/modprobe overlay
ExecStart=/usr/bin/containerd --config /etc/containerd/config.toml
Restart=always
RestartSec=5
LimitNOFILE=infinity

[Install]
WantedBy=multi-user.target
EOF

4.2 服务管理命令

# 重载配置
systemctl daemon-reload

# 启停服务
systemctl enable containerd --now
systemctl restart containerd

# 查看状态
systemctl status containerd

设置为系统服务截图:
在这里插入图片描述

五、功能验证与测试

5.1 基础功能测试

# 拉取测试镜像(使用私有仓库)
ctr image pull docker.io/library/nginx:alpine

# 运行容器
ctr run -d --net-host docker.io/library/nginx:alpine nginx-test

# 查看运行容器
ctr container ls

5.2 私有仓库连通性验证

ctr image pull registry.k8s.io/pause:3.9
ctr image list | grep pause

六、生产环境调优建议

6.1 存储驱动优化

# 使用 overlay2 存储驱动(需内核支持)
[plugins."io.containerd.grpc.v1.cri".containerd]
  snapshotter = "overlayfs"

6.2 日志配置

# 限制日志大小与保留时间
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
  SystemdCgroup = true
  [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options.log]
    max_size = "100MB"
    max_file = 3

6.3 资源限制

# 修改服务文件限制
[Service]
LimitNOFILE=1048576
LimitNPROC=infinity
LimitCORE=infinity

七、故障排查指

现象排查命令解决方案
服务启动失败journalctl -u containerd -xe检查配置文件语法和路径
镜像拉取失败ctr image pull -v验证仓库证书及网络连通性
容器无法创建ctr run --rm -t debug检查存储驱动和cgroup配置
节点资源耗尽df -h /data/containerd清理旧镜像或扩容存储

扩展工具推荐

  • nerdctl:Containerd的Docker兼容CLI
  • crictl:K8S CRI调试工具

通过本文,您已完成Containerd的离线部署与生产级调优。建议结合Kubernetes集群验证运行时集成效果!

如果本教程帮助您解决了问题,请点赞❤️收藏⭐关注支持!欢迎在评论区留言交流技术细节!欲了解密码学知识,请订阅《密码学实战》专栏 → 密码学实战

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曼岛_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值