4. mxkind使用说明

本章描述mxkind命令行工具的使用,包括mxkind新增命令接口介绍以及如何兼容使用原生kind命令。

4.1. 创建集群

mxkind通过给原生 kind create cluster 命令新增一个flag来指定集群中每个worker节点的GPU个数。

4.1.1. 原型

mxkind create cluster [mx-flag] -- [kind-flag]

其中 mx-flag 为mxkind新增的flag, kind-flag 为kind原生 create cluster 支持的flag,中间通过 -- 分隔。

4.1.1.1. kind-flag

kind-flag 是kind原生create cluster支持的flag,mxkind兼容原生 kind create cluster 指令的所有用法。

kind-flag 可通过 mxkind create cluster -- -h 获得,或者参考kind官网

4.1.1.2. mx-flag

mx-flag 是mxkind新增的flag,用来给待创建集群中的每个worker节点指定其可见的GPU数量。

表 4.1 mx-flag 参数说明

mx-flag

说明

–worker-gpus

指定worker节点的沐曦GPU 数量,节点间用逗号分隔(例如:“2,2,2”标识3个worker节点,每个节点分配2个GPU)

–help, -h

显示帮助信息

4.1.2. 输出

表 4.2 mxkind create cluster指令输出

输出

说明

成功

输出分成两部分,mxkind新增部分和kind原生部分:

  1. mx-flag参数指定的GPU分配结果

  2. 原生kind指令的输出

失败

输出分成两部分,mxkind新增部分和kind原生部分:

  1. 如果mx-flag参数校验失败,输出失败原因

  2. 原生kind指令的失败输出

4.2. 查询

mxkind通过在原生 kind get 指令下新增一个二级指令,来获取给各worker节点分配的GPU列表,同时兼容 get 原生的所有子命令。

4.2.1. 原型

4.2.1.1. 获取worker节点GPU列表

mxkind get [mx-command]

其中 mx-command 为mxkind新增的二级指令,详细说明见下表:

表 4.3 mx-command说明

mx-command

说明

gpus

mxkind get gpus 显示给每个worker节点分配的沐曦GPU ID列表

4.2.1.2. 兼容get原生命令

mxkind get  -- [kind-command]

kind-command 是kind原生 get 指令的二级命令,可通过 mxkind get -- -h 查看支持的二级指令集合。

4.2.2. 输出

指令类型

输出

mxkind get gpus

输出各个节点的名字和对应的GPU device ID列表。

示例:

root@luwu:/home/metax/# ./mxkind get gpus

GPU Allocation:

kind-worker : GPUs [0,1]

kind-worker2 : GPUs [2,3,4]

mxkind get – [kind get command]

直接输出对等kind原生指令的输出。

示例:

mxkind get -- clusters 等价于 kind get clusters

mxkind get -- nodes 等价于 kind get nodes

4.3. kind原生指令兼容

本章节描述mxkind如何兼容它没有扩展过的,也是上文没有提到过的其他kind原生指令。

kind原生指令列表可通过 mxkind -- -h 获得。

4.3.1. 原型

可以使用下面两种方式访问mxkind没有扩展过的命令。

  • mxkind命令后用 -- 标识后面跟的都是kind原生命令和flag,mxkind会将 -- 后的内容直接透传给它封装的原生kind。

  • mxkind命令后直接跟kind原生命令和flag,不用 -- 隔离。

推荐使用第一种方式,也就是用 -- 隔离mxkind和kind原生命令,提高可读性,其原型如下:

mxkind -- [kind-command]
#kind-command指原生kind支持的指令,可以通过mxkind -- -h查看支持的所有指令

4.3.2. 输出

这类透传指令输出和原生kind完全一致,以下是一个调用kind原生 delete 命令删除一个集群的示例:

root@luwu:/home/metax# ./mxkind -- delete cluster --name=kind-2node
Deleting cluster "kind-2node" ...
Deleted nodes: ["kind-2node-worker2" "kind-2node-control-plane"]