Rancher + K8S RestApi使用
1前言
1.1使用的软件及版本
|
软件 |
版本号 |
|
Rancher |
1.6stable |
|
Kubernetes |
1.8.3 |
|
Docker |
1.12.6 |
1.2 Rancher与K8S的RESTAPI差异
因为目前使用Rancher作为K8S的部署工具,Rancher封装了K8S的REST API(仅仅是做了一层代理),且K8S apiserver是作为内部服务(没有开放对外端口),因此无法直接访问K8S的api。不过可以通过Rancher开放的端口访问,其他内容还是没有变化的。
原K8S的REST API访问链接
https://k8s_apiserver_ip:6443/api/v1/namespaces/default/
现Rancher提供的RESTAPI链接
http://rancher_server_ip:8080/r/projects/1a7/kubernetes:6443/v1/namespaces/default/
2 REST API授权
要访问K8S的RESTAPI需要提供认证信息API Key。
API Key使用Bearer认证,包含集群所有者的两部分内容:Access Key和Secret Key。这两个信息都可以通过在RancherUI中获得。
具体获取方式如下:
①使用该集群所有者信息登录RancherUI,点击【API】> 【密钥】

②点击【添加账号API Key】
这里Api Key的名称和描述仅仅作为辅助作用,点创建会弹出真正需要记录的内容。

③点击【创建】
图片中的警告信息说明的已经很清晰了,不再解释。

④根据Access Key和Secret Key计算认证信息。
先获取 <AccessKey>:<SecretKey> 的Base64编码,长度84,记做KeyCode84
再获取 Basic <KeyCode84> 的Base64编码,长度120,记做KeyCode120
⑤使用
发起REST API请求的时候,在请求头里加上以下认证信息即可:
Authorization:Bearer <KeyCode120>
例如:
Authorization:Bearer
QmFzaWMgTXpjNVFVSkRRalJCT1RRMFJUQTFPRVF5UlVZNldXbFJNbmM1UVcxUVIzaEZlbHBrTlc1NU56VnZRbmhCY1RreFIxRjBObU55ZVRsRVFuVnRhdz09
QmFzaWMgTUVNME0wWXpPVU0wTmtNek5USXhNRVV4TWpRNmVHMDFhRlY2WkRnelMxazBjM2xTT0ZKa2MyTnJTRFJUYm1seGFXTktOelI2Tm5ONmFYUkJXQT09
3 REST API使用
3.1 api功能分类
官方api的使用文档,https://kubernetes.io/docs/api-reference/v1.9
访问http://rancher_server_ip:8080/r/projects/1a7/kubernetes:6443可以获取到所有支持的接口:
{
"paths": [
"/api",
"/api/v1", //蓝色部分是核心API Group
"/apis",
"/apis/",
"/apis/apiextensions.k8s.io",
"/apis/apiextensions.k8s.io/v1beta1",
"/apis/apiregistration.k8s.io",
"/apis/apiregistration.k8s.io/v1beta1",
"/apis/apps",
"/apis/apps/v1beta1",
"/apis/apps/v1beta2",
"/apis/authentication.k8s.io",
"/apis/authentication.k8s.io/v1",
"/apis/authentication.k8s.io/v1beta1",
"/apis/authorization.k8s.io",
"/apis/authorization.k8s.io/v1",
"/apis/authorization.k8s.io/v1beta1",
"/apis/autoscaling",
"/apis/autoscaling/v1",
"/apis/autoscaling/v2beta1",
"/apis/batch",
"/apis/batch/v1",
"/apis/batch/v1beta1",
"/apis/batch/v2alpha1",
"/apis/certificates.k8s.io",
"/apis/certificates.k8s.io/v1beta1",
"/apis/extensions",
"/apis/extensions/v1beta1", //扩展组
"/apis/networking.k8s.io",
"/apis/networking.k8s.io/v1",
"/apis/policy",
"/apis/policy/v1beta1",
"/apis/rbac.authorization.k8s.io",
"/apis/rbac.authorization.k8s.io/v1",
"/apis/rbac.authorization.k8s.io/v1beta1",
"/apis/storage.k8s.io",
"/apis/storage.k8s.io/v1",
"/apis/storage.k8s.io/v1beta1",//其他APIGroup
"/healthz",
"/healthz/autoregister-completion",
"/healthz/etcd",
"/healthz/ping",
"/healthz/poststarthook/apiservice-openapi-controller",
"/healthz/poststarthook/apiservice-registration-controller",
"/healthz/poststarthook/apiservice-status-available-controller",
"/healthz/poststarthook/bootstrap-controller",
"/healthz/poststarthook/ca-registration",
"/healthz/poststarthook/generic-apiserver-start-informers",
"/healthz/poststarthook/kube-apiserver-autoregistration",
"/healthz/poststarthook/start-apiextensions-controllers",
"/healthz/poststarthook/start-apiextensions-informers",
"/healthz/poststarthook/start-kube-aggregator-informers",
"/healthz/poststarthook/start-kube-apiserver-informers",
"/logs",
"/metrics",
"/swagger-2.0.0.json",
"/swagger-2.0.0.pb-v1",
"/swagger-2.0.0.pb-v1.gz",
"/swagger.json",
"/swaggerapi",
"/ui",
"/ui/",
"/version"
]
}
Kubernetes主要管理三种资源:Pod,replicationController,service
这里有一篇针对这三个资源的RESTAPI文档:
至于其他API,暂未找到好的较好的,如果想获取某操作的API url,可以通过kubectl执行操作的时候添加-v=8来获得。例如删除pod
kubectl delete pods ubuntu1 -v=8
得到

4. JavaClient 的使用
KubernetesAPIJavaClient
Rancher + K8S RestApi使用的更多相关文章
- Rancher+K8S部署手册
目前创建K8S集群的安装程序最受欢迎的有Kops,Kubespray,kubeadm,rancher,以及个人提供的脚本集等. Kops和Kubespary在国外用的比较多,没有处理中国的网络问题,没 ...
- Rancher + k8s + docker 部署资料
一.k8s 文档: https://jimmysong.io/kubernetes-handbook/concepts/deployment.html 命令行大全 https://kubernetes ...
- (转)清除已运行过Rancher和K8S的主机上的环境数据
文章转自 https://blog.csdn.net/CSDN_duomaomao/article/details/77684571?locationNum=5&fps=1 本文命令主要是参考 ...
- 使用Rancher的RKE快速部署Kubernetes集群
简要说明: 本文共涉及3台Ubuntu机器,1台RKE部署机器(192.168.3.161),2台Kubernetes集群机器(3.162和3.163). 先在Windows机器上,将rke_linu ...
- Rancher2.0构建kubernetes(K8S)集群
一.环境准备 1.准备至少3台CentOS7版本的虚拟机 # IP地址 主机名称 192.168.1.160 rancher 192.168.1.161 master 192.168.1.162 no ...
- Docker 编排工具Rancher 1.6.18
使用docker获取rancher [root@localhost /]# docker pull rancher/server:stable [root@localhost /]# docker i ...
- 使用Rancher的RKE部署Kubernetes要点
简要说明: RKE (Rancher Kubernetes Engine)是RancherLabs提供的一个工具,可以在裸机.虚拟机.公私有云上快速安装Kubernetes集群.整个集群的部署只需要一 ...
- 使用Rancher管理Docker
使用命令: sudo docker run -it -d --restart=always -p : --name docker-rancher rancher/server 为了更快速的下载应用,推 ...
- k8s集群问题记录
k8s集群问题记录 k8s学习方案 问题解决思路 主要学习路径: rancher(k8s)->rke->helm->kubectl->k8s(k8s中文api) 常见问题总结: ...
随机推荐
- 160805、oracle查询:取出每组中的第一条记录
在Java 9发布之前,我们来分享一些Java 8开发技巧 [以下为译文] 在使用JAVA 8进行开发多年后,结合个人使用IntelliJ IDEA的心得,我总结了以下几个JAVA8技巧供大家参考. ...
- 火狐老是弹出下载openh264-win32.zip怎么取消
OpenH264插件是WebRTC需要调用的一个解码器,从33版本开始内置,默认会自动下载安装和更新,出现这种情况的原因是迅雷或其他下载软件监视浏览器进程,导致火狐无法自动下载响应插件到配置文档中.解 ...
- 6.javaScript中的二维数组
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Python菜鸟之路:原生Ajax/Jquery Ajax/IFrame Ajax的选用
原生Ajax Jquery Ajax IFrame Ajax 如果发送的是普通的数据,比如用户简单的输入.选择的值,推荐使用Jquery ,其次用XMLHttpRquest对象,最次使用IFrame ...
- Web 编程中编码问题
1. 常见字符编码 iso-8859-1(不支持中文) gbk(国标码) utf-8 (万国码, 支持全世界的编码) 2. 响应编码 当使用 response.getWriter() 来向客户端发送字 ...
- Java 之继承和 final 关键字
继承的概述 继承的特点 super 关键字 函数覆盖 子类的实例化过程 final 关键字 1. 继承的概述 继承是类与类之间的关系. 继承的好处: 提高了代码的复用性 让类与类之间产生了关系, 给第 ...
- 学点TCPDUMP
[root@future ~]# yum install tcpdump 官网地址: https://nmap.org/ 还有中文手册,太感动了 https://nmap.org/man/zh/man ...
- Python(面向对象编程——2 继承、派生、组合、抽象类)
继承与派生 ''' 继承:属于 组合:包含 一. 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称 ...
- Rest_framework-3
目录: 返回值的封装 分页 视图 路由 渲染器 一 返回值的封装 a. API的基本框架 setting: 1 首先注册rest_framework 2 版本配置 REST_FRAMEWORK = { ...
- The 2018 ACM-ICPC上海大都会赛 J Beautiful Numbers (数位DP)
题意:求小于等于N且能被自己所有位上数之和整除的数的个数. 分析:裸的数位dp.用一个三位数组dp[i][j][k]记录:第i位,之前数位之和为j,对某个mod余数为k的状态下满足条件的个数.这里mo ...