2. GPU集群搭建快速上手

本章描述如何用mxkind从头创建一个能使用沐曦GPU的集群。

2.1. 安装mxkind

从下载中心获取mxkind安装包,并安装。详情参考 3.1 安装mxkind

2.2. 创建集群

2.2.1. 定义一个集群描述文件

kind通过一个配置文件来描述待创建的集群,我们以创建包含一个controller节点,2个worker节点的集群为例,定义文件集群描述文件 2node-cluster.yaml 如下:

# three node (two workers) cluster config
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker

2.2.2. 选取创建集群的K8s镜像

kind在创建集群的时候需要指定集群的k8s镜像,这个镜像决定了创建集群的k8s版本。

kind官方在发布每个kind版本的时候都为这个版本预构建好了一些配套的k8s镜像,用户根据使用的kind版本选择一个预构建好的镜像即可。

2.2.2.1. 获取kind版本号

m01060@lt-pc-10-12-0-12:~/$ mxkind -- version
kind v0.31.0 go1.25.5 linux/amd64

2.2.2.2. 获取K8s镜像

我们通过刚才获取到的kind版本号v0.31.0到kind预构建k8s镜像查询这个版本对应的k8s预构建镜像列表,并选取一个适合自己的。

这里假设我们选中v1.31.14,通过如下命令将其拉到本地:

sudo docker pull kindest/node:v1.31.14@sha256:6f86cf509dbb42767b6e79debc3f2c32e4ee01386f0489b3b2be24b0a55aac2b

2.2.3. 创建集群

创建集群之前,需要先定义集群中每个节点需要几个GPU,本节假设每个节点都需要2个GPU,通过如下命令创建集群。

# 2node-cluster.yaml 为前面创建的集群定义文件
# --worker-gpus=2,2 表示创建的2个工作节点各占用2个沐曦GPU
# kindest/node:v1.31.14 为选定的集群k8s镜像
mxkind create cluster --worker-gpus=2,2 -- --config=2node-cluster.yaml --image=kindest/node:v1.31.14

2.3. 安装沐曦 GPU Operator

本节介绍如何在创建好的集群中安装沐曦 GPU Operator,沐曦 GPU Operator 的下载安装和使用,参见《沐曦通用GPU云原生参考手册》。这里假设已经下载好安装所需的组件。

2.3.1. 加载相关镜像到集群

2.3.1.1. 获取集群名字

可通过如下指令获取刚才创建的集群名:

mxkind -- get clusters

2.3.1.2. 加载镜像到指定集群

可通过如下命令将宿主机中的镜像load到指定的kind集群中,其中 imageName 为镜像名, tag 为镜像的tag:

mxkind -- load docker-image image:tag --name cluster-name

循环上述步骤将 GPU Operator 所需的所有镜像都加载到指定的集群中。

2.3.2. 安装 GPU Operator

GPU Operator 从0.15.0开始支持mxkind集群安装,请确保 GPU Operator 的版本≥0.15.0,同时Helm版本≥3.8。

GPU Operator 暂不支持在mxkind集群中配置使用sGPU功能。

在mxkind集群中和在非mxkind集群中安装 GPU Operator 的唯一区别是,在mxkind集群中安装时需要在安装命令中指定 kind.enabled=true

下文中的 common-flags 指 GPU Operator 安装过程中的标准flag参数,使用方式可参考《沐曦通用GPU云原生参考手册》中“安装GPU Operator”章节。

安装 GPU Operator 命令原型如下:

helm install ./metax-operator [common-flags]
   --set kind.enabled=true
# 注:此场景需要Helm版本≥3.8

安装完成后,可通过以下命令查看 GPU Operator 生成的POD状态来判断是否安装成功:

kubectl get po -n metax-operator