拥抱AI时代:Ultralab Kubernetes —— 集成Ollama大模型的GPU集群一键部署框架
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(微信同号)









