随着人工智能、机器学习、AI 大模型技术的迅猛发展,我们对计算资源的需求也在不断攀升。特别是对需要处理大规模数据和复杂算法的 AI 大模型,GPU 资源的使用变得至关重要。对于运维工程师而言,掌握如何在 Kubernetes 集群上管理和配置 GPU 资源,以及如何高效部署依赖这些资源的应用,已成为一项不可或缺的技能。
今天,我将带领大家进一步探索如何在 KubeSphere 平台上,利用 Kubernetes 强大的生态和工具,实现 GPU 资源的管理和应用部署。以下是本文将要探讨的三个核心主题:
1.集群扩容与GPU节点集成:我们将通过 KubeKey 工具,扩展 Kubernetes 集群并增加具备 GPU 能力的 Worker 节点,为 AI 应用提供必要的硬件支持。
3.实战部署:Ollama大模型管理工具:我们将在 KubeSphere 上部署 Ollama,一个专为 AI 大模型设计的管理工具,以验证 GPU 资源能否被正确调度和高效使用。
通过阅读本文,您将获得 Kubernetes 上 管理 GPU 资源的知识和技巧,帮助您在云原生环境中,充分的利用 GPU 资源,推动 AI 应用的快速发展。
KubeSphere最佳实战「2024」系列文档的实验环境硬件配置和软件信息如下:
鉴于资源和成本的限制,我没有高端物理主机和显卡来做实验。只能增加两台配备入门级 GPU 显卡的虚拟机,作为集群的 Worker 节点。
尽管这些显卡在性能上不及高端型号,但它们足以应对大多数学习和开发任务,在资源有限的情况下,这样的配置为我提供了宝贵的实践机会,让我能够深入探索 Kubernetes 集群中 GPU 资源的管理和调度策略。
初始化配置指南中没有涉及操作系统升级的任务,在能联网的环境初始化系统的时候肯定要升级操作系统,然后重启节点。
接下来个人会使用 KubeKey 将新增加的 GPU 节点加入到已有的 Kubernetes 集群,参考官方说明文档,整一个完整的过程最简单,仅需两步。
在 Control-1 节点,切换到部署用的 kubekey 目录,修改原有的集群配置文件,我们实战中使用的名字为ksp-v341-v1288.yaml,请根据真实的情况修改 。
接下来我们执行下面的命令,使用修改后的配置文件将新增的 Worker 节点加入集群。
上面的命令执行后,KubeKey 先检查部署 Kubernetes 的依赖及其它配置是不是满足要求。通过检查后,系统将提示您确认安装。输入yes并按 ENTER 继续部署。
部署完成需要大约 5 分钟左右,具体时间看网速、机器配置、增加的节点数量。
我们打开浏览器访问 Control-1 节点的 IP 地址和端口30880,登陆 青云科技(KubeSphere 管理控制台的登录页面。
进入集群管理界面,单击左侧「节点」菜单,点击「集群节点」查看 Kubernetes 集群可用节点的详细信息。
在输出结果中能够正常的看到,当前的 Kubernetes 集群有 8 个节点,并详细展示每个节点的名字、状态、角色、存活时间、Kubernetes 版本号、内部 IP、操作系统类型、内核版本和容器运行时等信息。
上面的命令执行结果为true, 说明NFD已经在集群中运行。如果 NFD 已经在集群中运行,那么在安装 Operator 时必须禁用部署 NFD。
使用默认配置文件,禁用自动安装显卡驱动功能,安装 GPU Operator。
注意: 由于安装的镜像比较大,所以初次安装过程中有极大几率会出现超时的情形,请检查你的镜像是否成功拉取!可优先考虑使用离线安装解决该类问题。
3.使用自定义 values 安装 GPU Operator(可选,离线或是自定义配置时使用)
执行安装 GPU Operator 的命令后请耐心等待所有镜像成功拉取,所有 Pod 都处于 Running 状态。
通过上面的验证测试,证明可以在 K8s 集群上创建使用 GPU 的 Pod 资源,接下来我们结合实际使用需求,利用 KubeSphere 在 K8s 集群创建一套大模型管理工具 Ollama。
本示例属于简单测试,存储选择了hostPath模式,实际使用中请替换为存储类或是别的类型的持久化存储。
特殊说明:KubeSphere 的管理控制台支持图形化配置 Deployment 等资源使用 GPU 资源,配置示例如下,感兴趣的朋友能自行研究。
本示例为了节约时间,采用阿里开源的 qwen2 1.5b 小尺寸模型作为测试模型。
文章中所有操作步骤,已全部编排为自动化脚本,包含以下内容(因篇幅限制,不在此文档中展示):