Kubernetes, K8s, GPU集群, 集群部署, 容器编排, AI大模型, 模型推理, 分布式训练, Kubespray, Ansible, Rocky Linux, NVIDIA GPU, Ollama, Dashboard, 国内镜像加速, GPU节点管理, 可视化管理, 自动化部署, DeepOps, Cilium, NFS, 远程桌面, xrdp, 故障排查, LLM, CUDA, cuDNN, NCCL
项目背景
在人工智能与高性能计算(HPC)飞速发展的当下,如何高效构建和管理 Kubernetes (K8s) GPU 集群,成为了众多开发者和企业的核心痛点。面对复杂的网络环境、繁琐的 GPU 驱动配置以及高昂的运维成本,我们推出了Ultralab Kubernetes——一个基于 OpenK8s 和 Kubespray 构建的开源自动化部署框架。
本项目不仅实现了 K8s 集群的”一键式”部署,更深度集成了 NVIDIA GPU 调度、国内镜像加速、可视化 Dashboard 以及 Ollama 本地大语言模型,旨在为您提供一个开箱即用、智能高效的 AI 算力底座。
核心优势与特性
Ultralab Kubernetes 专为 AI 大模型(LLM)训练与推理场景设计,具备以下核心亮点:
1. 全流程自动化 (Ansible + Kubespray)
告别繁琐的手动配置。利用 Ansible 强大的自动化能力,结合 Kubespray 成熟的剧本(Playbooks),我们实现了从操作系统(Rocky Linux 9.7)准备到 K8s 集群上线的全流程自动化。
核心优势: - 幂等性设计,支持重复执行 - 声明式配置,易于版本管理 - 模块化架构,便于扩展定制
2. 极致的 AI 算力支持
原生支持 NVIDIA GPU 节点管理,自动配置 CUDA、cuDNN 及 NCCL 集合通信库,确保您的大模型(如 ChatGLM、Qwen 等)能够充分利用 GPU 算力。
技术特性: - 自动检测和配置 GPU 设备 - 支持 GPU 共享和多实例分割 - 优化的网络通信协议(RoCE/RDMA)
3. 国内环境友好 (镜像加速)
针对国内用户拉取 Docker 镜像慢、超时的问题,预配置了国内镜像源,彻底解决”镜像拉取失败”的困扰。
镜像源配置: - Docker Hub 国内加速镜像 - Kubernetes 组件国内镜像 - GPU 驱动和工具包国内源
4. AI 辅助运维 (Ollama 集成)
创新性地集成了 Ollama,利用本地大语言模型辅助集群测试和配置生成。开发者可以通过自然语言与集群交互,让 AI 帮助分析集群状态,降低 K8s 使用门槛。
AI 能力: - 智能集群状态分析 - 自动生成测试配置 - 自然语言交互界面
部署架构与流程
Ultralab Kubernetes 采用了模块化的架构设计,确保系统的稳定性与高性能。以下是集群部署的核心流程图:

架构设计原则
- 高可用性:多 Master 节点部署,支持故障自动转移
- 可扩展性:支持水平扩展,轻松添加 GPU 节点
- 安全性:内置 RBAC 权限管理,支持网络策略
- 可观测性:集成监控和日志收集,实时掌握集群状态
技术栈概览
组件类别
技术选型
说明
操作系统
Rocky
Linux 9.7
稳定、安全的 RHEL 兼容发行版,适合生产环境
容器编排
Kubernetes
(K8s)
云原生标准,强大的容器生命周期管理
部署工具
Ansible
+ Kubespray
无侵入式自动化部署,幂等性高,易于维护
网络插件
Cilium/Calico
支持高性能网络插件,可选 RoCE/RDMA 高速网络优化
AI 工具链
Ollama
+ CUDA
集成大模型推理与 GPU 计算环境
存储方案
NFS/Ceph
支持分布式存储和持久化存储
远程管理
xrdp
提供远程桌面访问能力
快速开始
通过 Ultralab,您可以按照以下标准流程快速启动集群:
1. 环境准备
# 安装 Python 依赖
sudo /usr/bin/python3 -m pip install ansible jmespath
# 安装系统依赖
sudo dnf install -y git curl wget
2. 配置 Inventory
编辑 config/inventory 文件,定义 Master 节点与 GPU Worker 节点:
[all]
master ansible_host=192.168.0.200 ansible_user=user
gpu01 ansible_host=192.168.0.201 ansible_user=user
gpu02 ansible_host=192.168.0.202 ansible_user=user
[kube-master]
master
[kube-node]
master
gpu01
gpu02
[etcd]
master
[k8s-cluster:children]
kube-master
kube-node
3. 一键部署
# 部署集群
cd /home/new/deepops
ansible-playbook -l k8s-cluster playbooks/k8s-cluster.yml -vvv
# 部署完成后验证
sudo /usr/local/bin/kubectl get nodes
sudo /usr/local/bin/kubectl get pods -n kube-system
4. 智能测试
# 运行测试工具
./k8s-test-with-ollama.sh
# 菜单选项:
# 1. 检查 Kubernetes 集群状态
# 2. 使用 Ollama 分析集群状态
# 3. 使用 Ollama 生成 Kubernetes 测试配置
# 4. 退出
访问 Dashboard
通过 NodePort 访问
- 地址:https://192.168.0.200:32099
- 注意:需要绕过证书警告
通过 kubectl proxy 访问
sudo /usr/local/bin/kubectl proxy --port=8080
# 访问 http://localhost:8080/api/v1/namespaces/kube-system/services/kubernetes-dashboard:https/proxy/
获取登录 Token
sudo /usr/local/bin/kubectl -n kube-system describe secret $(sudo /usr/local/bin/kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
远程桌面访问
# 连接方法:
# Windows:远程桌面连接(Win+R 输入 mstsc),输入服务器 IP 192.168.0.200
# Linux:使用 Remmina 或其他 RDP 客户端
# macOS:使用 Microsoft Remote Desktop 应用
故障排查
常见问题
错误信息
可能原因
解决方案
no endpoints available for service
服务没有可用的 Pod
检查 Pod 状态和标签选择器
SSL certificate problem: self-signed
certificate
自签名证书警告
绕过证书警告或使用 kubectl proxy
failed to pull image
镜像拉取失败
检查网络连接和镜像源配置
nodes is forbidden
RBAC 权限问题
检查服务账户和角色绑定
诊断命令
# 检查集群状态
sudo /usr/local/bin/kubectl cluster-info
# 检查 API 服务器状态
sudo /usr/local/bin/kubectl get componentstatuses
# 检查节点事件
sudo /usr/local/bin/kubectl get events --sort-by=.lastTimestamp
# 检查 Pod 详细信息
sudo /usr/local/bin/kubectl describe pod -n kube-system <pod-name>
结语
Ultralab Kubernetes 是连接传统基础设施与前沿 AI 应用的桥梁。它不仅简化了 K8s 的复杂性,更通过集成 Ollama 等工具,开启了”AI 管理基础设施”的新范式。
无论您是正在搭建私有云平台的企业,还是致力于大模型研究的科研团队,Ultralab 都能为您提供一个高性能、易维护、智能化的 GPU 集群解决方案。
相关资源
- 项目文档:Ultralab-Kubernetes.md
- 部署指南:ansible_k8s.md
- 快速访问:access-dashboard.sh
- 测试工具:k8s-test-with-ollama.sh
贡献与支持
欢迎提交 Issue 和 Pull Request 来改进这个项目。
联系方式
- GitHub:https://github.com/guozhangbin/ultralab-k8s
- 联系电话:13520538244(微信同号)









