在 Azure AKS 上创建带 GPU 节点池的 Kubernetes 集群并部署 KubeRay
在 Azure AKS 上创建带 GPU 节点池的 Kubernetes 集群并部署 KubeRay【免费下载链接】rayRay is an AI compute engine. Ray consists of a core distributed runtime and a set of AI Libraries for accelerating ML workloads.项目地址: https://gitcode.com/gh_mirrors/ra/ray导读本文基于 Azure AKS GPU 集群指南完整讲解如何在微软 Azure 上使用azCLI 从零创建一个带 GPU 节点池的 AKS 集群用于运行 KubeRay 驱动的 Ray 分布式训练与推理工作负载。读完本文你将掌握资源组创建、系统节点池初始化、GPU 节点池含节点污点与集群自动扩缩容的配置以及 kubeconfig 获取这一整套可复现的命令流程并能将集群接入 Ray on Kubernetes 的部署链路。为什么需要为 KubeRay 准备 GPU 集群KubeRay 是运行在 Kubernetes 之上的 Ray 编排层负责将 Ray 的 head/worker Pod 调度到集群节点上。Ray 文档中的大量 KubeRay 示例如 StableDiffusion 推理、DeepSeek 服务、MNIST 分布式训练都依赖 GPU 硬件而大多数本地 Kubernetes 环境如 Kind并不提供 GPU 节点。因此KubeRay 官方文档专门为各主流云厂商准备了GPU 集群搭建指南系列AKS 指南 就是其中面向 Azure 的一份与其并列的还有 AWS EKS、GCP GKE 和 阿里云 ACK 版本统称为 托管 Kubernetes 服务。本指南采用的配置方案可以复用到文档中的绝大多数 KubeRay 示例CPU 节点池承载 KubeRay operator、Ray head 等非 GPU 组件GPU 节点池专门承载带 GPU 的 Ray worker并通过节点污点taint保证两类工作负载互不干扰。前置条件动手前请确认以下环境就绪已注册 Azure 账号并登录可直接在 Azure 门户 中操作也可以全程使用命令行本机已安装 Azure CLIaz并执行过az login完成认证若从零开始使用 AKS建议先阅读 Azure 官方的 AKS 文档 与 快速上手理解 AKS 的 多节点池multiple node pools 概念这是成功部署 Ray on Kubernetes 的基础。Step 1创建资源组Resource Group所有 Azure 资源集群、节点池、负载均衡器等都归属在同一个资源组中便于统一管理、权限控制和成本核算。在指定区域创建资源组的命令如下az group create -l eastus -n kuberay-rg参数说明参数含义说明-l eastus资源组所在地域建议选择离你最近的 Azure 区域后续集群与节点池默认继承该地域-n kuberay-rg资源组名称命名可自定义本文与后续命令保持一致Step 2创建 AKS 集群与系统节点池创建 AKS 集群时必须同时指定至少一个系统节点池system nodepool它承载 CoreDNS、metrics-server等系统组件。这里创建一个 3 节点的系统池规格为Standard_D8s_v38 vCPU、32 GB 内存的通用型实例az aks create \ -g kuberay-rg \ -n kuberay-gpu-cluster \ --nodepool-name system \ --node-vm-size Standard_D8s_v3 \ --node-count 3参数说明参数含义说明-g kuberay-rg资源组对应 Step 1 创建的资源组-n kuberay-gpu-clusterAKS 集群名称后续所有命令都要引用它--nodepool-name system节点池名称命名为system以明确其用途--node-vm-size Standard_D8s_v3节点虚拟机规格D 系列为通用型适合 CPU 工作负载--node-count 3初始节点数量3 个节点为 KubeRay operator、Ray head 与系统组件提供充足资源为什么用系统池而不是 GPU 池承载一切参考 Ray 在 EKS 上的实践见 AWS EKS GPU 集群指南通常应避免把 GPU 工作负载放在 Ray head 所在的节点上让非 GPU 的 PodKubeRay operator、Ray head、CoreDNS跑在廉价的 CPU 节点GPU 只留给 Ray worker。Step 3添加 GPU 节点池GPU 节点池是整篇指南的核心。下面的命令为集群新增一个名为gpupool的 GPU 节点池规格为Standard_NC6s_v3NVIDIA Tesla V100单卡 16 GB 显存并开启集群自动扩缩容az aks nodepool add \ -g kuberay-rg \ --cluster-name kuberay-gpu-cluster \ --nodepool-name gpupool \ --node-vm-size Standard_NC6s_v3 \ --node-taints nvidia.com/gpupresent:NoSchedule \ --min-count 0 \ --max-count 3 \ --enable-cluster-autoscaler参数说明参数含义说明--cluster-name kuberay-gpu-cluster目标 AKS 集群注意与az aks create的-n区分这里是--cluster-name--nodepool-name gpupoolGPU 节点池名称通常用gpupool、gpu等直观命名--node-vm-size Standard_NC6s_v3GPU 虚拟机规格NC 系列为 GPU 计算实例可根据显存/算力需求换成Standard_NC12s_v3、Standard_NC24s_v3等--node-taints nvidia.com/gpupresent:NoSchedule节点污点防止普通 CPU Pod 被调度到 GPU 节点见下文污点与容忍小节--min-count 0/--max-count 3节点池扩缩容边界最小为 0 意味着空闲时可缩到没有 GPU 节点从而节省成本--enable-cluster-autoscaler开启集群自动扩缩容与 KubeRay / Ray 的自动扩缩配合按需伸缩节点数量污点nvidia.com/gpupresent:NoSchedule的作用NoSchedule污点会阻止没有对应容忍toleration的 Pod 调度到 GPU 节点上这正是隔离 GPU 资源的关键手段无 GPU 需求的 PodKubeRay operator、Ray head、系统组件没有 GPU 容忍只会落在 CPU 系统池声明了nvidia.com/gpu资源请求的 Ray worker Pod会被 Kubernetes 的ExtendedResourceToleration准入控制器自动加上匹配的容忍从而允许调度到 GPU 节点。这也是托管服务GKE/EKS/AKS自动完成的典型行为详见 GPU 使用指南。驱动安装的两种方式AKS 在 GPU 节点上默认预装 NVIDIA 驱动无需额外操作。如果你希望使用 NVIDIA GPU Operator 来统一管理驱动、设备插件与监控组件也可以参考 Azure 官方文档的 Skip GPU driver installation (Preview) 章节改用 GPU Operator 方案。Step 4获取 kubeconfig 并验证集群集群创建完成后需要将凭据下载到本地kubectl才能访问集群az aks get-credentials --resource-group kuberay-rg \ --name kuberay-gpu-cluster \ --overwrite-existing参数说明参数含义说明--resource-group kuberay-rg资源组与集群创建时一致--name kuberay-gpu-cluster集群名称与集群创建时一致--overwrite-existing覆盖本地已有 kubeconfig 条目避免因同名条目冲突导致连接失败验证 GPU 节点是否就绪获取凭据后建议立即验证 GPU 资源是否已暴露给 Kubernetes参考 EKS 指南 中的同类验证命令# 查看节点状态 kubectl get nodes # 检查 GPU 节点是否报告了可分配的 nvidia.com/gpu 资源 kubectl get nodes -ocustom-columnsNAME:.metadata.name,GPU:.status.allocatable.nvidia\.com/gpu如果 GPU 列显示none说明设备插件或驱动未就绪需要回到 Step 3 检查驱动安装方案。部署 KubeRay 并运行 GPU 工作负载集群就绪后就进入标准的 Ray on Kubernetes 部署流程安装 KubeRay operator参考 KubeRay Operator 安装指南推荐用 Helm 安装到独立的ray-system命名空间helm repo add kuberay https://ray-project.github.io/kuberay-helm/ helm repo update kubectl create namespace ray-system helm install kuberay-operator kuberay/kuberay-operator --version 1.7.0 -n ray-system部署 RayCluster 自定义资源参考 RayCluster 快速入门创建 RayCluster CR 后KubeRay operator 会自动创建 head 与 worker Pod。为 GPU worker 配置资源请求要让 Ray worker 真正使用 GPU必须在workerGroupSpecs的 Pod 模板中声明nvidia.com/gpu资源。下面是 GPU 使用指南 中的配置片段最大 5 个 GPU workergroupName: gpu-group replicas: 0 minReplicas: 0 maxReplicas: 5 template: spec: containers: - name: ray-node image: rayproject/ray:2.57.0-gpu resources: nvidia.com/gpu: 1 # 可选仅作文档说明 cpu: 3 memory: 50Gi limits: nvidia.com/gpu: 1 # 必填使用 GPU 的前提 cpu: 3 memory: 50Gi要点nvidia.com/gpu必须出现在limits中否则 Pod 无法获得 GPU镜像应使用 Ray 官方 CUDA 版镜像如rayproject/ray:2.57.0-gpu该镜像不含 TensorFlow/PyTorch 等 ML 库需通过自定义镜像或 Ray Runtime 环境 补充KubeRay operator 会把容器声明的 GPU 资源上限同步给 Ray 调度器与 Ray 自动扩缩器自动为ray start注入--num-gpus参数。触发 GPU worker 扩容部署完成后Ray 程序中声明 GPU 需求的 Task/Actor 会触发 worker 扩容。例如创建 2 个各需 1 块 GPU 的 Actorimport ray ray.init() ray.remote(num_gpus1) class GPUActor: def say_hello(self): print(I live in a pod with GPU access.) # 请求放置 2 个 GPU Actor会触发 GPU worker Pod 与底层节点扩缩容 gpu_actors [GPUActor.remote() for _ in range(2)] ray.get([actor.say_hello.remote() for actor in gpu_actors])程序退出后 Actor 被回收GPU worker Pod 会在空闲超时默认 60 秒后被 Ray 自动缩容由于本指南在 Step 3 开启了--enable-cluster-autoscaler底层 GPU 节点也会随 Pod 减少而一并缩容实现用多少、花多少。成本提示与清理GPU 实例如Standard_NC6s_v3价格昂贵且 GPU 节点池的最小容量被设置为 0就是为了在无任务时缩到零节点。若不再使用集群务必删除资源以免持续计费az group delete --name kuberay-rg --yes --no-wait删除资源组会级联清理其下全部资源集群、节点池、网络资源等是清理 AKS 环境最彻底的方式。总结本文完整复现了 Azure AKS GPU 集群指南 的四步流程创建资源组 → 创建带系统节点池的 AKS 集群 → 添加带污点与自动扩缩容的 GPU 节点池 → 获取 kubeconfig。结合 KubeRay Operator 安装、RayCluster 快速入门 与 GPU 使用指南即可让文档中绝大多数 GPU 类 KubeRay 示例如 StableDiffusion 推理、MNIST 训练在 Azure 上直接运行。该配置方案同样适用于其他云厂商区别仅在于 EKS、GKE 与 ACK 各自的集群创建命令。【免费下载链接】rayRay is an AI compute engine. Ray consists of a core distributed runtime and a set of AI Libraries for accelerating ML workloads.项目地址: https://gitcode.com/gh_mirrors/ra/ray创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Example 1 (compact list with code block)

Example 1 (compact list with code block)

Example 1 (compact list with code block) 【免费下载链接】prettier Prettier is an opinionated code formatter. 项目地址: https://gitcode.com/gh_mirrors/pr/prettier Sibling item beforeA bullet point with bare text (not in a <p>), followed by a co…

2026/9/21 2:01:56 阅读更多 →
微信支付回调验签总失败?让 Codex 走 TaoToken 对照 SHA256withRSA

微信支付回调验签总失败?让 Codex 走 TaoToken 对照 SHA256withRSA

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 22:20:02 阅读更多 →
MCP 智能体多模型切换,TaoToken 通道的 Base URL 填什么?

MCP 智能体多模型切换,TaoToken 通道的 Base URL 填什么?

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 0:47:22 阅读更多 →

最新新闻

逆向必学:PE文件结构核心字段与加壳脱壳实战解析

逆向必学:PE文件结构核心字段与加壳脱壳实战解析

简介&#xff1a;这份PE文件结构详解PDF对照《加密与破解》第十章&#xff0c;系统梳理Windows下exe、dll、sys等可执行文件的格式规范&#xff0c;适合逆向工程、软件安全、病毒分析初学者&#xff0c;也适合备考事业单位计算机岗位的读者夯实底层基础&#xff0c;还可作为高校…

2026/9/21 2:02:05 阅读更多 →
UL 60950-22户外设备认证指南:从适用边界到测试要点

UL 60950-22户外设备认证指南:从适用边界到测试要点

简介&#xff1a;UL 60950-22:2017 第二版标准PDF&#xff0c;专注于信息技术设备户外安装的安全规范&#xff0c;面向产品安全工程师、认证测试人员及户外设备研发人员。该标准整合了IEC 60950-22第二版的技术内容&#xff0c;针对户外环境下的防水防尘、电气安全、机械结构强…

2026/9/21 2:02:05 阅读更多 →
工业智能体落地指南:从概念、架构到实践路径与趋势

工业智能体落地指南:从概念、架构到实践路径与趋势

简介&#xff1a;这份《2025工业智能体应用现状与趋势展望报告》面向制造业决策者、数字化转型负责人及工业AI研究人员&#xff0c;系统梳理了工业智能体的概念定义、设备级到集团级的五大层级类型、应用现状与未来趋势。报告基于对汽车制造、高端装备等六大重点行业127家企业的…

2026/9/21 2:02:05 阅读更多 →
3DES源代码全解析:加解密实现、CBC模式与踩坑指南

3DES源代码全解析:加解密实现、CBC模式与踩坑指南

简介&#xff1a;3DES源代码包面向信息安全与密码学学习者&#xff0c;提供加密与解密的完整实现&#xff0c;可直接用于理解三重DES算法的工作流程。资源共11个文件&#xff0c;核心为main.cpp源程序&#xff0c;并配有可执行exe、C工程配置文件&#xff08;cbp/layout/depend…

2026/9/21 2:02:05 阅读更多 →
大模型入门指南:从零开始的技术路线与实战经验

大模型入门指南:从零开始的技术路线与实战经验

1. 大模型转行指南&#xff1a;从零开始的认知重塑去年夏天&#xff0c;我偶然在GitHub上看到一个用Stable Diffusion生成动漫头像的项目&#xff0c;当时完全看不懂那些术语——transformer、LoRA、prompt engineering...但正是这种"看不懂"激发了我的好奇心。三个月…

2026/9/21 2:02:05 阅读更多 →
SpringBoot三层架构实战:从零实现用户管理系统

SpringBoot三层架构实战:从零实现用户管理系统

1. 项目概述&#xff1a;SpringBoot三层架构实战刚入行Java开发时&#xff0c;总听前辈们念叨"三层架构"&#xff0c;但真正自己动手实现一个完整的用户管理系统才发现&#xff0c;理论到实践之间藏着不少门道。这次就用SpringBoot从零实现带三层架构的用户增删改查&…

2026/9/21 2:01:05 阅读更多 →

日新闻

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析&#xff1a;从项目检测到 AGENTS.md 规则生成的 16 步判定流程 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and …

2026/9/21 0:00:01 阅读更多 →
gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南&#xff1a;src/utils 复用规范与源码级解析 【免费下载链接】gin-vue-admin &#x1f680;ViteVue3Gin拥有AI辅助的基础开发平台&#xff0c;企业级业务AI开发解决方案&#xff0c;内置mcp辅助服务&#xff0c;内置skills管理&#xff0c;…

2026/9/21 0:00:01 阅读更多 →
Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

桌面应用AI 应用插件系统 【免费下载链接】Wox A cross-platform launcher that simply works 项目地址&#xff1a; https://gitcode.com/gh_mirrors/wo/Wox 点击查看 免费下载 全功能插件&#xff08;Full-featured Plugin&#xff09;是 Wox 三类插件实现方式中能力最完整的…

2026/9/21 0:00:01 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事&#xff1a;用Flutter给OpenHarmony做一款游戏集合类的App&#xff0c;说白了就是把若干小游戏塞进一个壳里&#xff0c;用统一入口分发。这个方向本身不算新鲜&#xff0c;真正让我花了不少心思的&#xff0c;是首页那堆游戏卡…

2026/9/20 0:00:46 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档&#xff0c;最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事&#xff1a;今天在表后面多加了两个空白行&#xff0c;明天给客户交稿前发现整个章节的编号全部错位&#xff0c;光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/20 0:00:46 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年&#xff0c;说实话&#xff0c;第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年&#xff0c;流量惨淡、功能臃肿、代码自己都懒得看第二遍之后&#xff0c;我才慢慢琢磨明白一个道理&#xff1a;第一个网站是练手&…

2026/9/20 0:00:46 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践&#xff1a;原型怎样变成可用功能分类&#xff1a;[AI/大模型]细分主题&#xff1a;AI 增强型 CI/CD 流水线自动化与 GitOps 实践&#xff1a;Agent 工作流、工具调用与任务拆解&#xff1a;从原型到生产的验收清单很多团队在尝试用大…

2026/9/19 23:01:36 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战&#xff1a;复盘记录怎样真正派上用场分类&#xff1a;[工程技术]细分主题&#xff1a;Kubernetes 生产环境运维与排障实战&#xff1a;可复制的项目复盘模板与决策记录大部分团队的事故复盘报告&#xff0c;最后都变成了躺在 Confluence 或钉…

2026/9/19 17:50:38 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理&#xff1a;核心链路应该先拆哪一步分类&#xff1a;[工程技术]细分主题&#xff1a;Docker 容器化技术与镜像安全管理&#xff1a;核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用&#xff08;包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →