CloudFoundry命令行和Kubernetes命令行的Restful API消费方式
先说CloudFoundry的命令行工具CLI。我们在CloudFoundry环境下工作,第一个使用的命令就是cf login。
如果在环境变量里维护CF_TRACE的值为true:
则我们能发现,诸如cf login这种命令,实际上也是通过消费Restful API来完成的。
下图是cf login这个命令的api endpoint请求细节,供大家参考:
API endpoint: https://api.cf.eu10.hana.ondemand.com
REQUEST: [2018-09-21T14:50:57+08:00]
GET /v2/info HTTP/1.1
Host: api.cf.eu10.hana.ondemand.com
Accept: application/json
Content-Type: application/json
User-Agent: go-cli 6.36.1+e3799ad7e.2018-04-04 / windows
RESPONSE: [2018-09-21T14:50:59+08:00]
HTTP/1.1 200 OK
Connection: close
Content-Length: 550
Content-Type: application/json;charset=utf-8
Date: Fri, 21 Sep 2018 06:50:58 GMT
Server: nginx
X-Content-Type-Options: nosniff
X-Vcap-Request-Id: abf32f52-294a-41f5-5919-be948d78f0dd::a32b17bb-da82-4d45-930f-f0344c8a83b3
{"name":"","build":"","support":"","version":0,"description":"Cloud Foundry at SAP Cloud Platform","authorization_endpoint":"https://login.cf.eu10.hana.ondemand.com","token_endpoint":"[PRIVATE DATA HIDDEN]","min_cli_version":null,"min_recommended_cli_version":null,"api_version":"2.115.0","app_ssh_endpoint":"ssh.cf.eu10.hana.ondemand.com:2222","app_ssh_host_key_fingerprint":"f3:12:47:b5:3a:19:6e:6c:4e:9d:90:2e:6f:8e:87:cc","app_ssh_oauth_client":"ssh-proxy","doppler_logging_endpoint":"wss://doppler.cf.eu10.hana.ondemand.com:443"}
REQUEST: [2018-09-21T14:50:59+08:00]
GET /login HTTP/1.1
Host: login.cf.eu10.hana.ondemand.com
Accept: application/json
Content-Type: application/json
User-Agent: go-cli 6.36.1+e3799ad7e.2018-04-04 / windows
API响应结果:
RESPONSE: [2018-09-21T14:51:00+08:00]
HTTP/1.1 200 OK
Connection: close
Content-Length: 551
Cache-Control: no-store
Content-Language: en-US
Content-Type: application/json;charset=UTF-8
Date: Fri, 21 Sep 2018 06:50:59 GMT
Set-Cookie: X-Uaa-Csrf=8uoxBvyG8QCwo29efrrZNh; Max-Age=86400; Expires=Sat, 22-Sep-2018 06:51:00 GMT; Path=/; Secure; HttpOnly
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Vcap-Request-Id: f6b29d8f-f78e-4c5e-61f3-5c9d906828ed
X-Xss-Protection: 1; mode=block
{"app":{"version":"4.19.0"},"links":{"uaa":"https://uaa.cf.eu10.hana.ondemand.com","passwd":"https://accounts.sap.com/ui/createForgottenPasswordMail?spName=cf.eu10.hana.ondemand.com","login":"https://login.cf.eu10.hana.ondemand.com","register":"https://accounts.sap.com/ui/public/showRegisterForm?spName=cf.eu10.hana.ondemand.com"},"zone_name":"uaa","entityID":"login.cf.eu10.hana.ondemand.com","commit_id":"7897100","idpDefinitions":{},"prompts":{"username":["text","Email"],"password":["password","Password"]},"timestamp":"2018-06-13T12:02:09-0700"}
Email>
再看Kubernetes。我们用的很多的命令:
kubectl get pods,返回pods列表。
而用命令行
kubectl --v=8 get pods
则发现,get pods这个命令实际上也是发请求发往Kubernetes的API server:
https://:6443/api/v1/namespaces/default/pods?limit=500
API请求明细如下:
API server是Kubernetes最重要的核心组件之一:
1. 提供集群管理的REST API接口,包括认证授权、数据校验以及集群状态变更等
2. 提供其他模块之间的数据交互和通信的枢纽(其他模块通过API Server查询或修改
数据,只有API Server才直接操作etcd)
kube-apiserver支持同时提供https(默认监听在6443端口)和http API(默认监听在
127.0.0.1的8080端口),其中http API是非安全接口,不做任何认证授权机制,不建议
生产环境启用。两个接口提供的REST API格式相同,参考Kubernetes API Reference查
看所有API的调用格式。
在实际使用中,通常通过kubectl来访问apiserver,也可以通过Kubernetes各个语言的
client库来访问apiserver。
比如上面get pods命令对应的API的文档:
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.10/#list-62
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
VirtualBox Network设置的NAT和Bridged Adapter模式区别
区别: NAT模式下,虚拟机仍然可以访问网络,但是从网络接收者的眼中看来,这些网络请求都来自宿主机,而感知不到虚拟机。外网也无法访问虚拟机网络。虚拟机和宿主机器的IP地址在不同的子网,比如192.168.1.1和192.168.1.2。 帮助文档提到,如果你只是想单纯的在虚拟机里访问网络,使用NAT足够了。 Host-Only: 虚拟机仍然被分配一个IP地址,但是只有在虚拟机运行的环境里可以访问这个IP地址。该地址对外界不可见。 Bridged:虚拟机有独立的IP地址,能被网络上其他主机访问。 VirtualBox的帮助文档: https://www.virtualbox.org/manual/ch06.html VirtualBox可以虚拟化以下六种物理网卡: VirtualBox官网有个表格,非常清晰地展示了几种网络模式的区别: 第一列VM &
- 下一篇
运维技术之二(5)、完成的安装docker安装jumpserver1.0.0(小白必会)
一、一个新纯净的系统CentOS7.4使用官方安装脚本自动安装Docker[root@jiaxin-ceshi ~]# curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun查看版本:[root@jiaxin-ceshi ~]# docker version使用阿里云镜像加速器 安装/升级Docker客户端 推荐安装1.10.0以上版本的Docker客户端,参考文档 docker-ce 配置镜像加速器针对Docker客户端版本大于 1.10.0 的用户 您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["https://v2ltjwbg.mirror.aliyuncs.com"]}EOFsudo systemctl daemon-reloadsudo systemctl resta...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- MySQL8.0.19开启GTID主从同步CentOS8
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Hadoop3单机部署,实现最简伪集群