首页
/ Rainbond API接口详解:从节点管理到任务调度

Rainbond API接口详解:从节点管理到任务调度

2025-07-08 01:28:29作者:房伟宁

Rainbond作为一款开源的云原生应用管理平台,提供了丰富的API接口来管理集群节点、调度任务以及获取服务端点信息。本文将深入解析Rainbond的核心API功能,帮助开发者更好地理解和使用这些接口。

一、License管理接口

1. 提交License

POST /license

这是Rainbond的授权管理接口,用于提交license并获取访问令牌。开发者需要将license以表单形式提交,成功后将返回一个包含token的JSON响应。

参数说明

  • license:必填参数,以字符串形式传递license内容

典型响应

{
  "bean": {
    "token": "Q3E5OXdoZDZDX3drN0QtV2gtVmpRaGtlcHJQYmFK"
  }
}

二、服务端点管理

1. 获取服务端点

GET /v2/apps/{app_name}/discover

此接口用于查询指定应用的端点(endpoints)信息,包括服务实例的地址和端口等。

响应示例

{
  "list": [
    {
      "name": "d275f5b34faf",
      "url": "10.0.55.72:6363",
      "weight": 0
    }
  ]
}

三、任务(Job)管理

Rainbond提供了完整的任务调度API,包括任务的增删改查、状态变更和执行控制。

1. 任务基础操作

获取任务列表

GET /v2/job

支持按节点(node)和组(group)过滤任务列表。

添加/更新任务

PUT /v2/job

需要以JSON格式提交完整的任务配置,包括:

  • 任务名称(name)
  • 所属组(group)
  • 执行命令(cmd)
  • 调度规则(rules)
  • 重试策略(retry)
  • 超时设置(timeout)等

获取所有任务组

GET /v2/job/group

返回所有已存在的任务组名称列表。

2. 任务细粒度控制

获取特定任务

GET /v2/job/{id}/group/{group}

通过任务ID和组名获取特定任务的详细信息。

变更任务状态

POST /v2/job/{id}/group/{group}

可用于暂停或恢复任务的执行。

删除任务

DELETE /v2/job/{id}/group/{group}

立即执行任务

PUT /v2/job/{id}/group/{group}/node/{name}

在指定节点上立即执行一次任务。

获取任务可执行节点

GET /v2/job/{id}/groups/{group}/nodes

返回可以运行该任务的所有节点IP列表。

四、节点管理

Rainbond提供了完整的节点生命周期管理API。

1. 节点基础操作

获取节点列表

GET /v2/nodes

从etcd获取所有节点的概要信息,包括:

  • 节点UUID
  • 主机名和内/外网IP
  • 可用资源(内存、CPU)
  • 角色(role)
  • 状态(status)
  • 标签(labels)
  • 调度状态(unschedulable)

添加新节点

POST /v2/nodes

需要提交完整的节点信息JSON。

获取节点基本信息

GET /v2/nodes//{node}/basic

通过节点UUID获取特定节点的详细信息。

2. 节点初始化与安装

SSH连接测试

PUT /v2/nodes/login

测试与目标节点的SSH连接,需要提供:

  • 主机地址和端口(hostport)
  • 节点类型(hosttype)
  • 登录凭证(pwd)
  • 登录类型(type)

基础初始化

PUT /v2/nodes/{ip}/init

对指定IP的节点执行基础初始化操作。

安装管理

GET /v2/nodes/{ip}/install
PUT /v2/nodes/{ip}/install

开始执行内置安装任务或检查安装状态。

安装状态检查

GET /v2/nodes/{ip}/install/status

获取安装任务的执行状态和结果。

3. 节点状态管理

重新上线节点

PUT /v2/nodes/{node}

将指定UUID的节点重新上线。

更新节点信息

POST /v2/nodes/{node}

更新节点的配置信息,包括资源、标签等属性。

五、使用建议

  1. 任务调度:Rainbond的任务调度系统支持复杂的调度规则,包括定时执行、节点过滤等,适合用于集群内的定时维护任务。

  2. 节点管理:通过API可以实现节点的全自动化部署和配置,适合大规模集群的管理。

  3. 服务发现:服务端点API可以帮助应用实现服务发现功能,动态获取后端服务实例。

  4. 错误处理:所有API都返回标准化的响应,包含状态码和消息,便于错误处理。

Rainbond的API设计遵循RESTful风格,提供了完整的集群管理能力。开发者可以根据实际需求组合使用这些API,实现自动化运维和资源管理。