2. GPU集群搭建快速上手
本章描述如何用mxkind从头创建一个能使用沐曦GPU的集群。
2.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