项目中调用Rancher Rest API实践

本文作者是睿云智合(Wise2C)的工程师钟亮,本文中他详细介绍了在项目中调用Rancher API时的具体步骤和总结出的一些规则。

项目中使用Rancher API 的场景

使用Rancher来管理CI/CD项目基于Docker产生的服务,调用Rancher提供的restful api无缝衔接到我们的项目。

 

20161117144015

 

直接看操作API的步骤吧

首先生成API KEY,用于通过Rancher的验证

将生产的API key 和password 保存下来,用于Http Basic Auth:

 

20161117144030

 

打开Rancher API管理界面的正确方式

在服务操作列表,点击view api 进入操作该服务的API 模拟界面:

 

20161117144041

 

进入Rancher API管理界面,右边可以模拟一个请求,这里以在Rancher中创建stack举例,点击create,填写必填参数,点击show requeset可以得到如下API Requeset详情:

 

20161117144049

 

从API Request 得出一个完整的api 请求需要的参数和规则

  • basicAuth格式:key:password [表示每个http请求头必须带上这种格式的auth,请求才能通过Rancher服务器的验证]
  • 请求类型:post
  • 请求参数格式:json
  • 创建stack的请求URL: http://182.140.210.214:8080/v1/projects/1a5/environments
  • 必须填写的字段:name

根据分析,我们可以用一段简单java代码试一下调用API创建stack:

 

20161117144100

 

调用Rancher API创建stack (java)

构造符合Rancher API 的Http basic Auth 头信息:

 

20161117144109

 

带上刚才生成的 API key password 和请求地址,经测试,已经成功在 Rancher 中创建了stack,更多 API 可以通过 view api 进入管理界面进行研究:

 

20161117144116

 

Tips:成功调用Rancher API 关键一步就是每个请求头必须带上Basic Auth[key:password]

通过访问具体的service的API可以总结出一些规则:

  • URL=http://182.140.210.214:8080/v1/projects/1a5[基础地址]+service/id[访问资源]
  • Links:列出了操作该serviece的rest URL地址
  • Action:列出了如:升级、重启、删除service的Action URL地址
  • 返回参数:可以根据API返回参数的名和类型定义对象,反序列化成对象,方便调用
  • 另外,通过API schemas获取每个参数的具体类型,schemas地址:http:///v1/projects/1a5/schemas

 

20161117144129

 

总结

如果你的项目也是基于Docker环境的,使用Rancher可以很好的管理的服务的生命周期(重启、停止、升级、回滚、确认升级、添加服务) 、集成服务等。

关于操作Rancher API的文档较少,本文以一个简单例子覆盖了调用Rancher API的基本流程以及API的一些规则,意在抛砖引玉,希望也在研究Rancher的大家能一起分享更多的实践。

K8S中文社区微信公众号
分享到:更多 ()

评论 1

评论前必须登录!

 

  1. #1

    请教一下 ,首次调用创建apikey的API时:key:password 应该传什么呢?

    宇宙2578年前 (2017-04-01)