一、初始化脚本配置方式
设置集群初始化脚本有以下两种方式:
1. 创建集群时,通过 InitNodeScripts 参数进行设置。
2. 集群创建成功后,通过 修改节点初始化脚本 接口进行配置。
注意:创建集群时的初始化脚本信息对于创建的节点都生效。修改节点初始化脚本 接口配置初始化脚本之后,对后续新增的节点生效,对于已经存在的节点,不会执行集群初始化脚本。
二、操作步骤
1. 创建 COS 存储桶,上传初始化脚本到 COS 存储,脚本必须以#!字符以及指向要读取脚本的解释器的路径(通常为 #!/bin/bash)开头。执行脚本支持以下环境变量,客户可以根据环境变量进行脚本执行的逻辑控制:
| 环境变量名 | 说明 | 参考值 |
| THPC_NODE_ROLE | 节点的角色 | COMPUTELOGINMANAGER |
| THPC_CLUSTER_ID | 集群ID信息 | hpc-8hje8h12 |
| THPC_SCHEDULER_TYPE | 调度器类型 | SLURM |
| THPC_ACCOUNT_TYPE | 域名字服务类型 | NIS |
注意:初始化脚本需要提前上传到 cos 桶上进行存储。
注意:由于初始化脚本在加入集群之前进行执行,需要客户评估脚本执行超时时间,否则有可能脚本执行异常,导致实例长时间无法加入集群被使用。
示例脚本如下:
#!/bin/bashecho ${THPC_NODE_ROLE} > /root/${THPC_NODE_ROLE}echo ${THPC_CLUSTER_ID} > /root/${THPC_CLUSTER_ID}echo ${THPC_SCHEDULER_TYPE} > /root/${THPC_SCHEDULER_TYPE}echo ${THPC_ACCOUNT_TYPE} > /root/${THPC_ACCOUNT_TYPE}
2. 在创建集群时配置 InitNodeScripts 参数或者集群创建成功后调用 修改节点初始化脚本 接口配置;
其中 ScriptPath 参数需要填写以 cos:// 的形式开头,将图中访问域名的 https:// 替换成 cos://,后续添加添加上存储桶访问路径即可。
例如cos://test-appid.cos.ap-guangzhou.myqcloud.com/thpc_test/install.sh其中 test-appid.cos.ap-guangzhou.myqcloud.com为存储桶访问域名,/thpc_test/install.sh为脚本访问路径。
注意:说明:
注意:目前只支持拉取与集群相同账号的 COS 桶,跨账号的 COS 桶暂时不支持拉取。
3. 在创建集群或者节点创建时,集群中的节点会从 cos 地址中获取到脚本,并在 /tmp/hpc_script/ 目录下进行执行。
脚本执行结果判断:
(1)集群脚本在超时时间内,返回 exit_code 为0,则被视为执行成功。
(2)集群脚本执行超时,或者返回的 exit_code 不为0,则被视为执行失败,执行失败的节点会被自动退还并销毁。
注意:说明:
注意:为了保证用户的操作能够在节点加入集群之后可以正常运行任务,初始化脚本在节点加入集群之前进行执行。执行自定义脚本会增加节点扩容所需时间。