为了避免广告和水贴嫌疑,某些已经成熟的操作,都会通过链接引用替代
特别鸣谢:acoustic 露文 李老汉的狗腿子
账号准备(必做)
免去注册和认证的步骤,请参考
注册腾讯云:https://cloud.tencent.com/document/product/378/17985
实名认证:https://cloud.tencent.com/document/product/378/3629
为了保证实验的顺利进行,请通过费用中心充值金额100元,抵扣按量扣费的CVM设备费用
费用中心:https://console.cloud.tencent.com/expense/overview
前置工作(必做)
密钥对的准备:https://console.cloud.tencent.com/cam/capi 通过控制台生成密钥,并牢记id和key
开通私有网络:https://console.cloud.tencent.com/vpc/vpc?rid=1
如果不懂参数用默认, 这里需要拿到私有网络的id,比如vpc-0jghqa4h
一般新建时会携带子网的初始化,需要拿到子网的信息,比如subnet-lw8ulnqu
可以用默认参数
查阅子网:https://console.cloud.tencent.com/vpc/subnet?rid=1
开通默认安全组: https://console.cloud.tencent.com/vpc/securitygroup?rid=1&rid=1
!注意 这个也有地域作用范围
测试学习可以放通全部,如下图:
考虑安全也可以做如下写法:
一般首次跑通推荐最后一条为允许
本次跑通以广州为例,所以地域选择都是广州
- 镜像支持 Centos 7.9,镜像 ID 为 img-l8og963d
- 可用地域为,广州,上海,重庆
- 仅支持API调用THPC
这些创建好以后,开始授权角色https://console.cloud.tencent.com/cam/role/grant?roleName=THPC_QCSLinkedRoleInAcrossService&serviceLinkedRole=1
角色页面如下图:
开通CFS
在挂载之前,我们需要先创建一个对应的系统
https://console.cloud.tencent.com/cfs/fs?rid=1
选择创建
选择通用的,下一步
立即创建
随后在详情中需要拿到几个参数,本地挂载点路径和远程挂载点路径
查看挂载点信息,注意linux下挂载的目录和windows下挂载的目录
mount -o nolock mtype=hard 10.0.0.10:/lo0i0jrj x:
注,"x:" 指用户需要挂载的盘符
如果直接直接挂载会报错
原因是因为没有开启NFS功能(如果是windows7或10需要企业版以上才支持,家庭版不支持)
挂载CFS到涉及到的端口
必须用到的参数:
ClusterId : "hpc-919qd6mc" // 用于节点的添加删除调度操作
代码语言:javascript复制镜像id:img-l8og963d
secretId:*****your id (参考上方准备工作)
secretKey*****your key (参考上方准备工作)
{
"ManagerNodeCount": 1, //管理节点数量
"ManagerNode": {
"InternetAccessible": {
"InternetMaxBandwidthOut": 10 //节点带宽
},
"InstanceName": "ManagerNode", //机器名称
"InstanceType": "SA2.MEDIUM4" //机型配置
},
"SchedulerType": "SLURM", //调度器类型
"ComputeNodeCount": 3, //计算节点数量
"ComputeNode": {
"InstanceType": "SA2.MEDIUM4", //机器配置
"InstanceName": "ComputeNode" //机型名称
},
"LoginSettings": {
"Password": "Aa12345678" //登录设置的密码
},
"Placement": {
"Zone": "ap-guangzhou-3" //地域-广州三区
},
"VirtualPrivateCloud": {
"VpcId": "你的私有网络id", //前置工作中有创建
"SubnetId": "你的子网id" //前置工作中有创建
},
"ImageId": "img-l8og963d", //使用的镜像
"StorageOption": {
"CFSOptions": [{
"StorageType": "SD", //cfs的存储类型
"Protocol": "NFS 3.0", //协议版本
"LocalPath": "/CFS/test", //本地挂载点
"RemotePath": "<挂载点IP>:/<fsid>" //远程挂载点
}]
},
}
TCCLI的安装与调度
账号上的一些基本准备做完了以后,我们就要到TCCLI来下功夫了,一样的,前置准备工作
依赖环境:
Python 版本必须为2.7及以上版本
Pip工具
centos安装Python
centos安装pip
windows安装python
windows安装pip
确认好依赖环境以后,就可以安装tccli了
centos 参考官网 安装TCCLI
windows的往下看,安装好python以后,进入到对应的目录就可以执行安装了
pip install tccli
升级到最新版
pip install tccli --upgrade
查看版本号
tccli --version
执行上述命令设置THPC为最新发布版本,有关tccli的更多使用可以通过:
tccli thpc help
接下来,我们就可以做其他的一些操作了。
先拿拿到之前的id和key。然后进行地域的配置
代码语言:javascript复制$ tccli configure
TencentCloud API secretId [*afcQ]:AKIDz8krbsJ5yKBZQpn74WFkmLPx3******* //上面拿过的
TencentCloud API secretKey [*ArFd]:Gu5t9xGARNpq86cd98joQYCN3******* //上面拿过的
region: ap-guangzhou //地域
output[json]:
通过json文件来导入
tccli thpc CreateCluster --cli-input-json file://d:/desktop/test.json
其中//后面跟的就是json文件的实际路径了
控制台验证创建情况
计算节点一般快一些
我们要等管理节点加载完成
"hpc-919qd6mc" 我们先记住这个,一般绿灯以后,我们要等一点时间等服务running起来
更新!(2022-05-11)
通过tccli 查看节点状态 直到 ClusterStatus为从INITING变为RUNNING状态
表示集群创建完成 (如果为INIT_FAILED状态,请找相关同学排查)
命令 tccli thpc DescribeClusters --ClusterIds '["hpc-919qd6mc"]'
返回
{
"ClusterSet": [
{
"ClusterId": "hpc-919qd6mc",
"ClusterStatus": "RUNNING",
"ClusterName": "unnamed",
"Placement": {
"Zone": "ap-guangzhou-3"
},
"CreateTime": "2022-05-11T07:24:42Z",
"SchedulerType": "SLURM",
"ComputeNodeCount": 2,
"ComputeNodeSet": [
{
"NodeId": "ins-8hdjz678"
},
{
"NodeId": "ins-8s9vsnyk"
}
],
"ManagerNodeCount": 1,
"ManagerNodeSet": [
{
"NodeId": "ins-hgqeagqs"
}
],
"LoginNodeSet": [],
"LoginNodeCount": 0
}
],
"TotalCount": 1,
"RequestId": "cce7aaa5-2459-4e07-9d60-223b76c72cc0"
}
现在尝试添加节点,以下是参数说明:
代码语言:javascript复制{
"Region": "ap-guangzhou", //指定地域
"Count": 1,
"ClusterId": "hpc-919qd6mc", //集群id
"QueueName": "compute", //队列名
"LoginSettings": {
"Password": "Aa12345678" //密码
},
"ImageId": "img-l8og963d", //镜像id
"VirtualPrivateCloud": {
"VpcId": "vpc-g7wzcv7n", //私有网络
"SubnetId": "subnet-pqx5wzp6" //子网
},
"Placement": {
"Zone": "ap-guangzhou-3" //可用区
},
}
还是使用json方式传入
tccli thpc AddNodes --cli-input-json file://d:/desktop/add.json
验证
删除节点之前需要
备份数据
备份数据
备份数据
tccli thpc DeleteNodes --cli-unfold-argument --region ap-guangzhou --ClusterId hpc-919qd6mc
--NodeIds ins-2o9ae76o
验证
怎么删除多个节点
tccli thpc DeleteNodes --cli-unfold-argument --region ap-guangzhou --ClusterId hpc-919qd6mc --NodeIds ins-h840183o ins-npxs9s8c ins-8o3fz1v2
空格一个,节点名称跟在后面即可,注意,managernode设计了不可删除性质,是为了保障业务,如确定不需要,可以通过调用退还集群接口操作,之前需要
备份数据
备份数据
备份数据
tccli thpc DeleteCluster --cli-unfold-argument --region ap-guangzhou --ClusterId hpc-919qd6mc
退还后,控制台也没有了。
关于AS伸缩组的配置,等,可以参考如下部分:
3.使用 THPC 自动扩缩容(可选)
自动扩缩容功能将根据您的工作负载弹性伸缩当前队列里的子机数量。如果您在创建集群时使用了自动挂载 CFS 功能,按照以下步骤新扩出的节点也将自动挂载 CFS。
3.1 通过已创建固定集群的计算节点 制作自定义镜像(必做,否则会影响后续AS功能)
登录云服务器控制台,找到您刚刚创建的集群对应的计算节点(建议在创建集群时通过命名区分集群节点),在云服务器控制台-实例-更多-制作镜像 完成计算节点镜像制作:
3.2 在弹性伸缩 AS 里配置启动配置
启动配置可参见弹性伸缩 启动配置概述,您需要注意:
- 需要和集群在同一可用区,同一VPC,同一子网下;
- 选择您刚刚创建的计算节点自定义镜像;
3.3 在弹性伸缩 AS 里新建伸缩组策略
新建伸缩组策略可参见弹性伸缩 创建伸缩组,您需要注意:
- 需要和集群在同一可用区,同一VPC,同一子网下;
- 最小伸缩数保持为0,起始实例数保持为0,最大伸缩数可以填您期望扩缩容的上限值;
- 选择您刚刚创建的启动配置;
3.4 调用 BindAutoScalingGroup 接口绑定 AS 与集群
您可以通过调用绑定弹性伸缩组绑定您刚刚创建的伸缩组策略和集群,您需要注意:
- ExpansionBusyTime 参数设置后当任务等待时间达到您设定的限制会启动扩容;
- ShrinkIdleTime 参数设置后当节点空闲时间达到您设定的限制会启动缩容;
以下为使用示例:
tccli thpc BindAutoScalingGroup --ClusterId hpc-kiw4a9he --QueueName compute --LaunchConfigurationId=asc-muzz0td6 --AutoScalingGroupId asg-qqair38e --ExpansionBusyTime 120 --ShrinkIdleTime 120 --EnableAutoExpansion True --EnableAutoShrink True
以下为json文件参数示例
代码语言:javascript复制{
"Region": "ap-guangzhou", //地域
"ClusterId": "hpc-919qd6mc", //集群id
"QueueName": "compute", //队列名
"LaunchConfigurationId": "asc-muzz0td6", //伸缩配置
"AutoScalingGroupId": "asg-qqair38e", //伸缩组
"ExpansionBusyTime": 120, //扩容冷却时间,单位s
"ShrinkIdleTime": 300, // 空闲时间缩容,单位s
"EnableAutoExpansion": true, // 自动扩容
"EnableAutoShrink": true // 自动缩容
}
3.5 查看当前集群扩缩容的节点
登录弹性伸缩控制台,选择左侧导航中的 伸缩组,在伸缩组详情页面,选择关联实例页签,可查看该伸缩组所关联的实例列表。
到这就告一段落拉,有什么不清楚的,我们再下一期补充
文档引用各类操作详细说明
密钥说明:https://cloud.tencent.com/document/product/598/40487
地域说明:https://cloud.tencent.com/document/product/213/6091
私有网络:https://cloud.tencent.com/document/product/215/51955
子网:https://cloud.tencent.com/document/product/215/36517
安全组学习笔记:https://cloud.tencent.com/developer/article/1430259
tccli安装:https://cloud.tencent.com/document/product/440/34011
tccli配置:https://cloud.tencent.com/document/product/440/34012
Windows 挂载CFS
SLURM使用教程
其他说明
- 支持在创建集群时自动挂载CFS,如果您在创建集群后有挂载CFS需求,需要登录到节点内手动挂载;
- Turbo挂载
- 目前集群仅支持单队列。
- 域名字服务类型支持 NIS
- 收费信息请参见高性能计算平台 购买指南
- 更多使用限制请参见 使用限制 - 高性能计算平台
- 挂载协议仅支持 NFS 3.0,NFS 4.0,TURBO;
- 文件系统本地挂载路径是一个新目录;
- 如果您选择使用 NFS 3.0,文件系统远程挂载ip及路径格式为:<挂载点IP>:/<fsid>,fsid可在挂载点详情中获取;
- 提交请求并执行完毕后,您需要记录ClusterId;
- 您可以通过json文件格式传入命令行参数;