说明:
官方API:
http://kubernetes.io/kubernetes/third_party/swagger-ui/#/
注意:
k8s的api是严格按照restful风格的,即同样的
/api/v1/namespaces/{namespace}/pods
如果是POST则是创建pod,如果是DELETE则是删除pod
本文摘抄一些我们日常使用需要的api,以提供给agent调用
一.pod操作
1.创建一个pod
POST /api/v1/namespaces/{namespace}/pods //此处我们的namespaces是default
类型:application/json
参数:参考官方
2.删除一个pod
DELETE /api/v1/namespaces/{namespace}/pods
3.查看pod列表
GET /api/v1/namespaces/{namespace}/pods
4.查看指定名称的pod
GET /api/v1/namespaces/{namespace}/pods/{name}
二.rc操作:Replicationcontroller
1.创建一个rc
POST /api/v1/namespaces/{namespace}/replicationcontrollers
2.删除一个rc
DELETE /api/v1/namespaces/{namespace}/replicationcontrollers/{name}
3.获取rc列表
GET /api/v1/namespaces/{namespace}/replicationcontrollers
4.获取指定名称的rc
GET /api/v1/namespaces/{namespace}/replicationcontrollers/{name}
5.替换指定的rc
PUT /api/v1/namespaces/{namespace}/replicationcontrollers/{name}
三.Service操作
1.创建一个新的service
POST /api/v1/namespaces/{namespace}/services
2.删除一个指定service
DELETE /api/v1/namespaces/{namespace}/services/{name}
3.获取一个指定service的信息
GET /api/v1/namespaces/{namespace}/services/{name}
4.显示所有service列表及信息
GET /api/v1/namespaces/{namespace}/services
四.Node操作(节点/minion)
1.创建一个新的node
POST /api/v1/nodes
2.获取所有k8s的node列表
GET /api/v1/nodes
3.删除指定node
DELETE /api/v1/nodes/{name}
4.获取指定node信息
GET /api/v1/nodes/{name}
不难发现,一旦统一风格后,restful api就显得非常清楚明了,路径一致,只需要改变请求方法即可.
五.实践:通过http请求删除一个pod
具体执行一个请求,比如在10.1.1.1上部署了整个k8s环境,并且配置了api server端口为8080。
此时机子上面跑了一个pod:test-pod。
我们测试一下通过http请求删除pod,而不是kubectl delete pod name.
请求path:
10.1.1.1:8080/api/v1/namespaces/default/pods
请求方法:
http delete
测试代码如下:
待续.
直接http get显示pods信息
http://10.1.1.1:8080/api/v1/namespaces/default/pods
确实列出了所有pod的信息.验证了restful api
其他资料:
Kubernetes权威指南之Kubernetes API详解
http://www.infoq.com/cn/articles/Kubernetes-API?amp&&