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功能分类

访问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文档:

http://cdn.rawgit.com/GoogleCloudPlatform/kubernetes/31a0daae3627c91bc96e1f02a6344cd76e294791/api/kubernetes.html

至于其他API,暂未找到好的较好的,如果想获取某操作的API url,可以通过kubectl执行操作的时候添加-v=8来获得。例如删除pod

kubectl delete pods ubuntu1 -v=8

得到

时间: 2024-10-07 22:25:01

Rancher + K8S RestApi使用的相关文章

强力优化Rancher k8s中国区的使用体验

引言 Kubernetes(以下简称K8s)是Rancher平台重点支持的一个编排引擎,Rancher K8s具有部署灵活使用方便的特点, 而且Rancher基本是同步更新支持K8s的新版本新组件,用户也可以选择部署指定的K8s版本. 但是这一切的便利,身在中国的我们难以深刻体验,万恶的GFW把很多部署的依赖挡在之外, 而服务全球开发者的Rancher平台亦不可能为中国用户单独定制,所以本文作者牛小腩要自己动手丰衣足食,顺带给大家分享一下如何优化Rancher k8s中国区的使用体验. 部署要点

Rancher + k8s + docker 部署资料

一.k8s 文档: https://jimmysong.io/kubernetes-handbook/concepts/deployment.html 命令行大全 https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands http://docs.kubernetes.org.cn/626.html 二.rancher学习视频 http://www.cnblogs.com/rancher-maomao/p/907

如何用Rancher在AWS上运行Kubernetes

众所周知,亚马逊有EC2容器服务,它是亚马逊用于运行Docker容器的解决方案.不过我觉得EC2容器服务不怎么好用,所以现在我要在AWS上测试Rancher和Kubernetes. Kubernetes是一个用以自动化部署.弹性伸缩以及管理容器化应用程序的开源系统.Rancher是一个可用于企业内部的完整的容器管理和运行平台,它提供企业级的访问控制和容器编排. Rancher环境部署 第一步,我会按默认的向导创建一个新的虚拟私有云,这个虚拟私有云是为Rancher准备的.接下来的事情就是创建一个

如何hack一下Rancher Kubernetes

在Rancher中,由于Kubernetes是基于Cattle引擎来部署,所以在Kubernetes部署完成之后,我们可以通过Link Graph来很清晰地看到整体的部署情况. 既然基于Cattle引擎部署,也就是说需要两个compose文件,k8s引擎的compose文件放在https://github.com/rancher/rancher-catalog/tree/master/templates 下面,这里面有两个相关目录kubernetes与k8s,k8s是Rancher1.2开始使用

使用Rancher的RKE快速部署Kubernetes集群

简要说明: 本文共涉及3台Ubuntu机器,1台RKE部署机器(192.168.3.161),2台Kubernetes集群机器(3.162和3.163). 先在Windows机器上,将rke_linux-amd64从github上下载下来,重新命名为rke ,编辑好cluster.yml集群部署文件,使用putty提供的pscp命令,将文件上传到3.161机器上.在3.161机器上,执行rke命令,将集群部署到3.162和3.163机器上. 只要环境配置正确,部署非常快,整个集群5分钟搞定. 准

秒搭Kubernetes之使用Rancher

Rancher 在接触Docker和K8s的前阶段就耳闻目睹到Rancher,但是没有进一步接触过.直到将K8s搭建完成.才进一步了学习与实践Rancher. Rancher是简便易用的容器管理.其中Rancher对Kubernetes的支持与维护特别用心,使其在生产环境中的基础设置里更易于搭建与使用. 但实话实说,其一对于k8s的小白能通过rancher方便部署k8s,但在其封装下,不易理解k8s的内部实现.对于更多专业人士,推荐自己亲自搭建K8s:其二,对于生产中使用Rancher,建议需要

容器数量增加香港赛马平台搭建导致fs.inotify.max_user_instances超过限制

1.现象描述2.问题分析3.解决办法4.总结5.参考链接1.现象描述 平台架构:Rancher,k8s,微服务 问题的香港赛马平台搭建论坛:haozbbs.com Q1446595067 出现发生在最近,当服务的数量增加到一定程度时,出现了容器日志不定期丢失的情况,通过以下方式均没有日志信息输出:1)通过Rancher,Kubernetes UI查看容器日志2)通过docker logs查看2.问题分析2.1 初步分析 由于是日志出现问题,首先考虑到的是rsyslog和journal服务是否工作

CNCF启动K8s软件一致性项目,Rancher入选全球首批K8s认证平台

CNCF于美国旧金山当地时间2017年11月13日宣布推出Certified Kubernetes Conformance Program,并公布了首批通过认证的32个Kubernetes平台的名单. 此次认证项目中得到认证的Kubernetes产品与平台确保具有一致性及可移植性,可确保完整的Kubernetes API按照规定运行,因此用户可以获得无缝且稳定的体验.同时,得到认证的产品或平台可以使用新的Kubernetes认证标志,并可以将Kubernetes标志与其产品名称(例如XYZ Ku

使用Rancher搭建K8S测试环境

http://blog.csdn.net/csdn_duomaomao/article/details/75316926 环境准备(4台主机,Ubuntu16.04+Docker1.12.6 + SSH): rancher1   192.168.3.160   只做管理节点 node1      192.168.3.161   K8S的节点1 node2      192.168.3.162   K8S的节点2 node3      192.168.3.163   K8S的节点3 一.启动Ran