附录:调度器插件的常用OpenAPI说明

本文将为您介绍常用的OpenAPI会调用到插件功能中的具体功能项,帮助您了解集群调度器插件功能与常用OpenAPI之间的关联关系,从而进行自身业务的具体实现。

背景信息

本文示例仅针对纯调度器插件场景,如果您的业务还需要同时配置域账号插件,请添加域账号相关功能项。

节点扩容(AddNodes)

关联说明

调用节点扩容接口AddNodes,将会涉及SchedServiceCheck、NodeJoinCheck和NodeAdd三种调度器插件功能,因此需要在配置文件中将这三个功能项设置为true,并且实现对应的插件函数功能。

流程说明

2022-04-13_14-36-07流程说明如下:

  1. 调用AddNodes接口后,云管控开始生产计算节点资源,即启动硬件配置、软件配置等操作。

  2. 软件配置阶段,在安装调度器过程中,系统会定时地调用服务检测功能(SchedServiceCheck),检测调度器是否安装成功。若不成功则继续等待软件安装,若成功则继续执行下一步。

  3. 执行节点加入调度器检测(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)的操作。流程图如下:

2022-04-13_14-50-02

插件功能说明

说明

以下仅说明需要您自行实现的插件功能。

NodeDel

  • 功能:在调度节点上将该节点从调度器中删除。

  • 具体实现:

    • 源文件:pluginnodeoperation.py。

    • 实现函数:functionnode_del()。

  • 实现举例:例如pbs调度器通过qmgr命令将该节点从调度器中删除。