本文将为您介绍常用的OpenAPI会调用到插件功能中的具体功能项,帮助您了解集群调度器插件功能与常用OpenAPI之间的关联关系,从而进行自身业务的具体实现。
背景信息
本文示例仅针对纯调度器插件场景,如果您的业务还需要同时配置域账号插件,请添加域账号相关功能项。
节点扩容(AddNodes)
关联说明
调用节点扩容接口AddNodes,将会涉及SchedServiceCheck、NodeJoinCheck和NodeAdd三种调度器插件功能,因此需要在配置文件中将这三个功能项设置为true,并且实现对应的插件函数功能。
流程说明
流程说明如下:
调用AddNodes接口后,云管控开始生产计算节点资源,即启动硬件配置、软件配置等操作。
软件配置阶段,在安装调度器过程中,系统会定时地调用服务检测功能(SchedServiceCheck),检测调度器是否安装成功。若不成功则继续等待软件安装,若成功则继续执行下一步。
执行节点加入调度器检测(NodeJoinCheck)。在此定时检测中,若检测节点未加入调度器,则调度器节点开始执行节点加入调度器(NodeAdd)的操作,反之则表示计算节点已经加入调度器,节点状态为运行中。
插件功能说明
以下仅说明需要您自行实现的插件功能。
SchedServiceCheck
功能:检测调度服务是否正常,需要根据节点角色(调度节点或计算节点)分别实现。
具体实现:
源文件:pluginschedulercheck.py。
实现函数:sched_service_check()。
实现举例:例如pbs调度器通过
systemctl status pbs
命令检测节点自身pbs服务是否正常运行。
NodeJoinCheck
功能:检测计算节点是否已经加入到调度器中。
具体实现:
源文件:pluginschedulercheck.py。
实现函数:node_join_check()。
实现举例:例如pbs调度器通过
pbsnodes
命令检测自身是否已经在调度器中。
NodeAdd
功能:在调度节点上将该节点加入到调度器中。
具体实现:
源文件:pluginnodeoperation.py。
实现函数:node_add()。
实现举例:例如pbs调度器通过
qmgr
命令将该节点加入到调度器中。
节点缩容(DeleteNodes)
关联说明
调用节点缩容接口DeleteNodes,将会涉及NodeDel调度器插件功能,因此需要在配置文件中将该功能项设置为true,并且实现对应的插件函数功能。
流程说明
调用DeleteNodes接口,计算节点将开始进行资源释放,此时调度器节点开始执行节点从调度器删除(NodeDel)的操作。流程图如下:
插件功能说明
以下仅说明需要您自行实现的插件功能。
NodeDel
功能:在调度节点上将该节点从调度器中删除。
具体实现:
源文件:pluginnodeoperation.py。
实现函数:functionnode_del()。
实现举例:例如pbs调度器通过
qmgr
命令将该节点从调度器中删除。