本文介绍如何将eRDMA机型的节点加入ACK中。
使用限制
仅1.24及以上版本的ACK集群支持eRDMA实例节点的添加,且如果节点为GPU节点时,仅支持470.xx.xx以上的NVIDIA驱动版本。
ACK支持全部eRDMA机型节点加入集群。支持eRDMA的ECS实例类型,请参见:
前提条件
已在节点上安装eRDMA
通过OS镜像预安装
在集群中添加支持eRDMA的节点时,可以使用阿里云官方提供的已经部署好eRDMA驱动的OS镜像。其Image Id为
m-2ze71xexpolzv031di8z
。该镜像需要您前往Cloud Market购买(不计费)。手动安装
如果您希望手动在实例上安装eRDMA软件栈,流程如下:
安装后,通过手动添加节点的方式将该实例添加到集群中,请参见添加已有节点。
已创建eRDMA网卡,并与目标ECS实例绑定。详细信息,请参见创建辅助弹性网卡。
添加支持eRDMA的节点至ACK集群
手动添加
自动添加
相关操作
节点安装eRDMA依赖
您如果想要使用eRDMA节点,例如在eRDMA节点上部署应用,则必须安装eRDMA Device Plugin。
准备test.yaml文件。
--- apiVersion: v1 kind: ConfigMap metadata: name: rdma-devices namespace: kube-system data: config.json: | { "mode" : "hca" } --- apiVersion: apps/v1 kind: DaemonSet metadata: name: rdma-sriov-dp-ds namespace: kube-system labels: app: rdma-device-plugin spec: selector: matchLabels: app: rdma-device-plugin template: metadata: labels: app: rdma-device-plugin name: rdma-sriov-dp-ds spec: hostNetwork: true nodeSelector: aliyun.accelerator/erdma: "true" tolerations: - key: CriticalAddonsOnly operator: Exists containers: - image: registry-cn-beijing.ack.aliyuncs.com/acs/k8s-rdma-sriov-dev-plugin:v1.0.0-b3dcbc5-aliyun name: k8s-rdma-sriov-dp-ds imagePullPolicy: Always resources: limits: memory: "300Mi" cpu: "300m" requests: memory: "300Mi" cpu: "300m" securityContext: privileged: true volumeMounts: - name: device-plugin mountPath: /var/lib/kubelet/device-plugins - name: config mountPath: /k8s-rdma-sriov-dev-plugin volumes: - name: device-plugin hostPath: path: /var/lib/kubelet/device-plugins - name: config configMap: name: rdma-devices items: - key: config.json path: config.json
执行如下命令,部署eRDMA Device Plugin。
kubectl apply -f test.yaml
预期输出:
configmap/rdma-devices created daemonset.apps/rdma-sriov-dp-ds created
预期输出表明,eRDMA Device Plugin部署成功。
容器安装eRDMA依赖
如需在容器中使用eRDMA功能,需要安装eRDMA的用户态驱动程序包,具体操作,请参见步骤二:在Docker内安装eRDMA驱动程序包。
说明
建议您将容器内安装eRDMA依赖的操作集成并写入您所使用eRDMA业务镜像的Dockerfile中,可以在多个环境下确保一致性和可重复性,简化部署流程,提升开发和运维效率。Dockerfile具体制作过程,请参见Dockerfile编写教程。
文档内容是否对您有帮助?