Rancher-API使用珠玑

简介:

功能


使用 rancher-api 能带来什么:


  • 可以自定义 rancher-UI

  • 可以在自有的业务系统中触发对 rancher 的各种操作

  • 可以定制一些自己的自动化脚本


分类


Rancher-api 目前包括两大类:


  • http://<server>/v1 主要服务的 api

  • http://<server>/v1-catalog 分离出来的catalog api


在已经登录 Rancher UI 的情况下,直接访问上面的地址就可以看到 API 页面。


语言


在实际的开发中,我们更喜欢调用 Client SDk 来使用 API,Rancher 提供了以下几种语言的Client:


  • Python:gdapi-python / cattle-cli

  • Golang:go-rancher

  • Java:gdapi-java-server


认证方式


1. 使用 jwt-token


向 v1/token 发送 post 请求生成 token: 


wKiom1h1qk3hgzh-AADLau5QiMo706.jpg


然后把 token 设置到 cookie 中,在浏览器端后续请求会自动带上 token,目前 rancher UI 使用的是这种方式。


wKioL1h1ql6T0g-yAADtLh2-LCw244.jpg


2. 使用api key (access_key & access_secret)


Api key 的生成


此处有两种key:作用域在某个env下的env-key,和作用域在该用户下所有env下的global-key。


wKiom1h1qpPj6p_MAAEeSsB4QbU464.jpg


这里 advanced options UI 上默认是不展开的。


生成好的 api key,配合 cattle-cli/gdapi 之类的 client 库就可以使用。


wKioL1h1qqTTu_mmAAFGaoTBu40511.jpg


3. 使用Basic auth方式


这种方式同样需要api key,但是使用方式略不一样,先对 api key 进行编码 Base64.encode(“key: secret”) 


wKiom1h1qsPhZWH3AADPrh9rynk275.jpg


为什么要提这种方式?


因为目前 catalog api 还不能用 client lib 直接调用,但是可以用这种方式调用。 


Rancher 的高级选项


在 V1/setting 下面,有很多可配置的高级选项,可以进行手动编辑。


可以修改 jwt token 的有效时间,默认是 16 小时内 token 有效。 


wKioL1h1qzPgkoSSAACMPzSJmM4086.jpg


Auditlog 是 Rancher 审计日志,一般频繁操作 Rancher 会导致 Auditlog 激增,Rancher 提供了以周期性的 purge 机制,可以根据自己数据库容量调整这个周期。 


wKiom1h1q0ngS9_wAACfN_7EcBM401.jpg


Rancher-compose 的各种下载地址,尤其是在国内可以把这个改成自己的地址,方便下载。


wKioL1h1q2KBPExvAAGka-knsSc977.jpg


Rancher 私有网络的 cidr 也可以修改 :


wKioL1h1q3KA8e2DAAClSCh0zik741.jpg


Rancher 目前兼容 docker1.10.3,所以 Rancher 提供了一个安装该版本的 shell 脚本,这个脚本会在 Add Host 使用其他 driver 时用到,我们可以把里面的内容源指定到国内,提高 dockerengine 的安装速度,从而快速部署 Host。 


wKiom1h1q4GDsHauAADHaRY3sHg139.jpg

 

v1/settings 的高级功能等待大家细细挖掘,最后 Rancher-api有一个说明文档可以看这里:

https://github.com/rancher/api-spec/blob/master/specification.md


其中的语义定义和 api 的组织结构等,都是值得学习的。


另外 api-v2 之前也启动过https://github.com/rancher/v2-api,但是后来由于 GA 发布和多编排引擎的支持,这件事暂时搁置了,相信不久后会重启 v2 的开发,V2 版本是基于Golang的。


最后提醒大家需要注意的是,v1版本的api的语义和UI上有歧义,rancher-docs 里也有提到这部分。 

 

wKiom1h1q5SAyiT9AAB26MlfGug819.jpg


本文转自 RancherLabs 51CTO博客,原文链接:http://blog.51cto.com/12462495/1891019


相关文章
|
2月前
|
监控 测试技术 API
Eolink神技之二、API全生命周期管理
Eolink神技之二、API全生命周期管理
60 0
|
9月前
|
边缘计算 Kubernetes 安全
基于 Traefik Hub & Rancher Prime 发挥 Kubernetes 原生API管理威力
Hello folks,我是 Luga,今天我们来聊一下云原生网关 Traefik 核心技术之一Traefik Hub。
74 0
|
9月前
|
Kubernetes Cloud Native 安全
基于 Traefik Hub 的新一代 API 管理
Hello folks,我是 Luga,今天我们来聊一下云原生生态网关统一管理平台-Traefik Hub 的新一代 API 管理功能。
107 0
|
11月前
|
运维 API 虚拟化
分享OpenStack API使用套路
分享OpenStack API使用套路
|
域名解析 Kubernetes 应用服务中间件
Rainbond的 Gateway API 插件制作实践
Gateway API 作为新一代的流量管理标准,对原有 Ingress 的扩展不规范、移植性差等问题做出了改进
|
机器学习/深度学习 程序员 API
分享两个超牛的开源API项目,程序员需要的免费API都在这里了!
我们程序员要和各种 API 打交道,比如在网站上展示实时天气,在电商网站展示物流动态,在外卖配送中展示位置信息,这些 API 都要我们自己去实现显然是不现实的。
|
前端开发 NoSQL JavaScript
RAP2-DELOS 开源社区版本 (后端 API 服务器)
RAP2-DELOS 开源社区版本 (后端 API 服务器)
307 0
|
安全 数据管理 API
国王小组:交易所搭建|API网关的API架构
一、何为API网关? APIGateway 即API网关,所有请求首先会经过这个网关,然后到达后端服务,有点类似于Facade模式。API网关作为系统接口对外的统一出口,可以减少调用方对服务实现的感知。 没有API网关时的系统结构如下图1:由图可以看出,在没有API网关作为统一出口的情况下,需要调用方自己组合各种服务,而且容易让调用方感知后端各种服务的存在。
国王小组:交易所搭建|API网关的API架构
|
存储 Kubernetes 测试技术
Kubernetes 声明式API【1】初遇
Kubernetes 声明式API【1】初遇
Kubernetes 声明式API【1】初遇
|
存储 Kubernetes API
浅入Kubernetes(13):dash mboard、api、访问配置
浅入Kubernetes(13):dash mboard、api、访问配置
360 0
浅入Kubernetes(13):dash mboard、api、访问配置

热门文章

最新文章