从异构到融合:openFuyao 多样化算力资源池化与调度总体方案——KAE-Operator 实践与拓展
一、前言:多样化算力时代的调度挑战
随着数据中心算力结构从传统 CPU 时代走向 “异构算力并存” 的全新阶段,GPU、NPU、DPU、KAE(Kunpeng Acceleration Engine)等专用算力设备持续增加。硬件能力越强,对软件层统一管理、自动化调度与性能释放的要求就越高。
在这样的背景下,openFuyao 作为面向国产算力生态的开放容器平台,承担了 “将多样化算力能力池化、调度化、服务化” 的关键使命。然而,传统开发者仍依赖手工安装驱动、手工部署加速服务、手工调试节点能力 —— 流程繁琐、运维成本高、开发链路不统一。
为解决这些问题,openFuyao 构建了以 KAE-Operator、NPU-Operator、NFD(Node Feature Discovery) 为核心的算力自动化能力体系,实现加速能力的 “自动部署、一键接入、统一调度”。
本文将聚焦 KAE-Operator,并结合 openFuyao 的总体算力管理方案,展示其面向多样化算力生态的自动化与智能化演进。
二、KAE 与 Operator 在 openFuyao 中的角色
1. KAE 简介
KAE(Kunpeng Acceleration Engine)是基于鲲鹏处理器体系打造的通用加速引擎,支持多类数据处理加速能力,包括:
(1)加密加速(SM2/SM3/SM4、AES、SHA 等)
(2)压缩与解压缩
(3)数据传输和数据安全处理
(4)通用数据面算法加速
这些能力广泛应用于对象存储、数据库、日志服务、消息中间件和网络设备中,是云基础设施性能优化的关键组成部分。
2. Operator 的角色:算力调度的自动化引擎
在 openFuyao 中,Operator 框架承担以下核心任务:
(1)自动部署驱动组件、用户态库与加速服务
(2)自动注册节点算力能力,纳入调度体系
(3)维护算力资源 CRD,支持算力池化
(4)与 openFuyao 调度器协作,实现按需调度
因此,Operator 是 “硬件能力 → 集群可调度资源” 的桥梁。
三、KAE-Operator 系统架构与核心模块
KAE-Operator 的架构遵循标准 Kubernetes Operator 设计,主要包含以下模块:
1. 总体架构
(1)Controller 控制器
监听自定义资源(CRD)的变化,自动执行部署或更新动作。
(2)CRD(Custom Resource Definition)
定义 KAE 节点算力能力,例如加密模块、压缩模块、设备状态等。
(3)DaemonSet / Deployment 机制
DaemonSet:适用于节点级加速库 / 驱动的统一部署
Deployment:负责控制加速服务组件和指标采集模块
2. 关键模块说明
| 模块 | 功能 |
| 资源注册模块 | 自动发现节点 KAE 设备,写入 CRD,纳入 openFuyao 算力池 |
| 状态同步模块 | 实时上报健康状态、驱动版本、可用指令能力 |
| 日志与监控模块 | 输出运行日志、提供 Prometheus 指标,支持可视化观测 |
该架构保证整个集群在大规模环境下也能保持低运维、低耦合与高自动化水平。
四、安装与部署流程(基于官方文档)
1. 前提条件
(1)环境准备
- 已安装 kubectl 和 Helm CLI(或集群支持应用商店 / 仓库配置)
- Kubernetes 集群中 KAE 工作节点需统一运行 openEuler 22.03 LTS 操作系统(非 KAE 工作节点无此限制)
- KAE 节点已激活 License(虚机场景需完成硬件切分和硬直通,参考官方文档)
- 节点配置与系统版本一致的 yum 源(依赖 kernel-devel 等内核包)
(2)离线环境 yum 源配置(可选)
\# 1. 下载对应版本 openEuler 离线镜像并上传至 /mnt/iso 目录
\# 2. 创建挂载目录
mkdir -p /mnt/openEuler
\# 3. 挂载镜像
mount /mnt/iso/openEuler-22.03-LTS-x86_64-dvd.iso /mnt/openEuler
\# 4. 配置 yum 源
mv /etc/yum.repos.d/openEuler.repo /etc/yum.repos.d/openEuler.repo.bak
cat </yum.repos.d/openEuler.repo
\[openEuler\]
name=openEuler
baseurl=file:///mnt/openEuler
enabled=1
gpgcheck=1
gpgkey=file:///mnt/openEuler/RPM-GPG-KEY-openEuler
EOF
\# 5. 更新缓存
yum clean all && yum makecache
(3)NFD 依赖检查
NFD(节点特性感知服务)为必选依赖,默认由 Operator 自动部署,若集群已运行 NFD 需手动禁用:
\# 检查 NFD 是否已运行(输出 true 表示已运行)
kubectl get nodes -o json | jq '.items\[\].metadata.labels | keys | any(startswith("feature.node.kubernetes.io"))'
2. 安装方式
(1)openFuyao 平台可视化安装
- 进入 openFuyao 平台,左侧导航栏选择「应用市场 > 应用列表」
- 搜索 “kae operator”,进入应用详情页
- 点击右上角「部署」,输入应用名称、版本信息、命名空间
- 点击「确认」完成部署
(2)通用场景 Helm 安装
- 添加 Helm 仓库
helm repo add openfuyao https://helm.openfuyao.cn && helm repo update
- 基础安装(默认配置)
helm install --wait --generate-name \\
\-n kae-operator --create-namespace \\
openfuyao/kae-operator
3. 常见定制选项(核心配置)
| 范围 | 描述 | 默认值 |
| nfd.enabled | 是否部署 NFD 服务(已运行 NFD 则设为 false) | true |
| nfd.nodefeaturerules | 是否安装 KAE 设备发现规则(NFD 已运行时设为 true) | false |
| operator.enabledHPRE | 是否启用 HPRE 设备管理(核心加密加速功能) | true |
| driver.enabled | 是否由 Operator 管理 KAE 驱动(预装驱动时设为 false) | true |
| driver.enabledCleanup | 卸载时是否删除宿主机驱动 | false |
| devicePlugin.enabled | 是否部署 KAE 设备插件(预装插件时设为 false) | true |
| psa.enabled | 集群启用 Pod Security Admission 时设为 true | false |
4. 常见部署场景示例
(1)指定命名空间安装
helm install --wait --generate-name \\
\-n openfuyao --create-namespace \\
openfuyao/kae-operator
(2)阻止特定节点安装驱动
\# 标记节点禁止部署驱动(安装前执行)
kubectl label nodes $NODE openfuyao.com/kae.deploy.driver=false
\# 恢复部署权限
kubectl label nodes $NODE openfuyao.com/kae.deploy.driver=true
(3)使用自定义镜像安装
helm install --wait --generate-name \\
\-n kae-operator --create-namespace \\
openfuyao/kae-operator \\
\--set driver.repository=docker.io/your repository \\
\--set driver.version="0.1"
5. 验证部署结果
\# 查看 Operator 相关 Pod 状态
kubectl get pods -n kae-operator
\# 查看节点 KAE 资源标签(确认设备发现成功)
kubectl describe nodes grep "openfuyao.com/kae.hpre"
五、功能亮点:让加速算力 “自动上线”
- 自动化算力发现与注册
无需人工配置,Operator 自动探测并上报加速能力,让算力自然池化。
- 快速部署、低侵入性
只需简单的 kubectl apply 或 Helm 命令即可完成加速引擎部署,极大降低运维门槛。
- 支持多算力类型协同管理
KAE-Operator 与 NPU-Operator、GPU-Operator 共享 openFuyao 的统一算力管理框架,实现跨设备协同调度。
- 稳定可靠的容错机制
监控失败自动重启、CRD 状态恢复、热更新能力确保算力服务持续在线。
- 对 openFuyao 算力池化与统一调度的强化作用
operator 是算力纳入统一调度体系的前提。 通过 CRD 注册和能力上报,调度器可以做到:
(1)按需调度到支持某种加速能力的节点
(2)针对不同算力设备进行差异化资源判断
(3)实现跨节点、跨设备的算力池扩展
六、拓展:NPU-Operator 与 NFD 的协同价值
1. NPU-Operator:面向 AI 推理算力的自动调度
NPU-Operator 与 KAE-Operator 架构一致,通过自动部署驱动、注册 NPU 设备能力,使 AI 推理算力可调度、可监控、可管理。
典型能力包括:
(1)NPU 设备拓扑查询
(2)昇腾算子库自动加载
(3)操作系统与驱动版本匹配检查
(4)设备健康检测
2. NFD(Node Feature Discovery)节点特征发现
NFD 是实现 “精细化调度” 的关键组件,能够自动识别节点硬件特征并打上标签,包括:
(1)CPU 型号、NUMA 拓扑
(2)GPU/NPU/KAE 设备
(3)巨页、PCIe 拓扑
(4)节点性能能力(AVX、ARM 指令集等)
openFuyao 的算力调度通过对 NFD 标签进行规则匹配,实现 “按需选节点” 的智能调度策略。
七、总结与展望:构建真正的多样化算力融合调度体系
KAE-Operator 与 NPU-Operator、NFD 的协同,是 openFuyao 在多样化算力时代的重要基石。它们实现了:
(1)算力自动化上线
(2)多设备统一资源模型
(3)跨硬件能力的统一调度体验
(4)开发者 “开箱即用” 的算力加速体验
未来,openFuyao 将继续扩展到更多加速设备,包括 DPU、FPGA、专业 AI 芯片等,并基于 Operator 与 NFD 体系打造真正的:
“多样化算力融合、池化、自治调度的云原生基础底座”
对于硬件厂商与算力服务平台,openFuyao 提供了一个开放、可集成、可扩展的生态。 对于开发者,openFuyao 提供了 “一键部署、自动加速” 的全新体验。
算力正在变得更快、更智能、更易获取,而 openFuyao 正在让异构算力变得 “像水电一样易用”。


被折叠的 条评论
为什么被折叠?



