拥抱AI时代:Ultralab Kubernetes —— 集成Ollama大模型的GPU集群一键部署框架

时间:   来源:UltraLAB图形工作站方案网站   人气:8290 作者:


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 采用了模块化的架构设计,确保系统的稳定性与高性能。以下是集群部署的核心流程图:




架构设计原则

  1. 高可用性:多 Master 节点部署,支持故障自动转移
  2. 可扩展性:支持水平扩展,轻松添加 GPU 节点
  3. 安全性:内置 RBAC 权限管理,支持网络策略
  4. 可观测性:集成监控和日志收集,实时掌握集群状态


技术栈概览

组件类别

技术选型

说明

操作系统

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 访问

通过 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 集群解决方案。


相关资源


贡献与支持

欢迎提交 Issue 和 Pull Request 来改进这个项目。

联系方式

上一篇:没有了