当前位置: 首页 > news >正文

[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集群验证运行时集成效果!

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


http://www.mrgr.cn/news/99244.html

相关文章:

  • STM32的启动方式
  • k8s 基础入门篇之开启 firewalld
  • 240422 leetcode exercises
  • 十三种通信接口芯片——《器件手册--通信接口芯片》
  • 【MySQL】表的约束(主键、唯一键、外键等约束类型详解)、表的设计
  • OpenCV基础函数学习4
  • 超详细mac上用nvm安装node环境,配置npm
  • 2025年世界职业院校技能大赛实施方案(意见稿)
  • V5验证官网滑块验证码WSS协议逆向算法分析
  • Uniapp:view容器(容器布局)
  • Dify忘记管理员密码,重置的问题
  • Spark-SQL(四)
  • 【大模型】Browser-Use AI驱动的浏览器自动化工具
  • ‌机器学习快速入门--0算力起步实践篇
  • SAP系统生产跟踪报表入库数异常
  • 大模型应用开发大纲
  • Java学习路线--自用--带链接
  • TensorBoard如何在同一图表中绘制多个线条
  • 【项目管理】成本类计算 笔记
  • 开源身份和访问管理(IAM)解决方案:Keycloak