
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Intel Analytics Accelerator (IAA) 设备插件为 Kubernetes 提供了使用 Intel Analytics Accelerator (IAA) 进行加速计算的能力。该插件能够发现 IAA 工作队列并将其作为节点资源呈现给 Kubernetes 集群。
IAA 插件和操作器可通过 initcontainer,借助 https://github.com/intel/idxd-config 工具,选择性地支持 IAA 设备和工作队列的配置。
以下部分详细介绍如何获取、构建、部署和测试 IAA 设备插件。
bash$ git clone https://github.com/intel/intel-device-plugins-for-kubernetes
要将 IAA 插件部署为 DaemonSet,需要先构建插件的容器镜像并确保节点可以访问该镜像。
构建插件镜像
使用以下命令通过 docker 构建本地容器镜像,镜像名为 intel/intel-iaa-plugin,标签为 devel:
bash$ cd ${INTEL_DEVICE_PLUGINS_SRC} $ make intel-iaa-plugin ... Successfully tagged intel/intel-iaa-plugin:devel
部署插件 DaemonSet
使用提供的示例 DaemonSet YAML 文件部署插件。默认的 kustomization 会按原样部署 YAML:
bash$ kubectl apply -k deployments/iaa_plugin daemonset.apps/intel-iaa-plugin created
项目包含一个示例 https://github.com/intel/intel-device-plugins-for-kubernetes/blob/main/build/docker/intel-idxd-initcontainer.Dockerfile%EF%BC%8C%E7%94%A8%E4%BA%8E%E9%85%8D%E7%BD%AE IAA 设备和工作队列(1 个引擎 / 1 个组 / 1 个工作队列(用户/专用)),部署命令如下:
bash$ kubectl apply -k deployments/iaa_plugin/overlays/iaa_initcontainer/
配置https://github.com/intel/intel-device-plugins-for-kubernetes/blob/main/demo/idxd-init.sh%E5%92%8Chttps://github.com/intel/intel-device-plugins-for-kubernetes/blob/main/demo/iaa.conf%E5%8F%AF%E6%A0%B9%E6%8D%AE%E9%9C%80%E6%B1%82%E8%BF%9B%E8%A1%8C%E8%87%AA%E5%AE%9A%E4%B9%89%E3%80%82
配置可以选择存储在 ProvisioningConfig ConfigMap 中,然后通过卷挂载传递给 initcontainer。通过将节点名通过 NODE_NAME 环境变量传递给 initcontainer,并通过 ConfigMap 卷挂载传递节点特定的配置文件,可以实现节点特定的配置。
创建自定义配置 ConfigMap:
bash$ kubectl create configmap --namespace=inteldeviceplugins-system intel-iaa-config --from-file=demo/iaa.conf
对于开发目的,有时需要在节点上手动部署插件。这种情况下,不需要构建完整的容器镜像,只需构建插件即可。
构建插件
首先构建插件:
bash$ make iaa_plugin
以管理员身份运行插件
直接在节点上运行插件:
bash$ sudo -E ./cmd/iaa_plugin/iaa_plugin device-plugin registered
通过搜索节点资源分配状态,可以验证插件是否已注册:
bash$ kubectl get nodes -o go-template='{{range .items}}{{.metadata.name}}{{"\n"}}{{range $k,$v:=.status.allocatable}}{{" "}}{{$k}}{{": "}}{{$v}}{{"\n"}}{{end}}{{end}}' | grep '^\([^ ]\)\|\( iaa\)' master iaa.intel.com/wq-user-dedicated: 2 iaa.intel.com/wq-user-shared: 10 node1 iaa.intel.com/wq-user-dedicated: 4 iaa.intel.com/wq-user-shared: 30
可以通过部署提供的 iaa-qpl-demo 测试镜像来测试插件是否正常工作。
构建包含 accel-config 测试的 Docker 镜像:
bash$ make iaa-qpl-demo ... Successfully tagged iaa-qpl-demo:devel
创建运行单元测试的 Pod:
bash$ kubectl apply -f ./demo/iaa-qpl-demo-pod.yaml pod/iaa-qpl-demo created
等待 Pod 完成:
bash$ kubectl get pods | grep iaa-qpl-demo iaa-qpl-demo 0/1 Completed 0 31m
如果 Pod 未能成功启动,可能是因为无法获取 IAA 资源,此时 Pod 将处于 Pending 状态:
bash$ kubectl get pods NAME READY STATUS RESTARTS AGE iaa-qpl-demo 0/1 Pending 0 7s
可以通过检查 Pod 的事件来确认:
bash$ kubectl describe pod iaa-qpl-demo | grep -A3 Events: Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning FailedScheduling 2m26s default-scheduler 0/1 nodes are available: 1 Insufficient iaa.intel.com/wq-user-dedicated, 1 Insufficient iaa.intel.com/wq-user-shared.
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务