Kubernetes(K8s) API概念理解&常用API使用方法速查 v1.11
在保证k8s集群成功运行的情况下,可以在任何一台联网的主机上向上文指定的IP+port发起HTTP请求,来查看k8s集群的各种信息情况。K8s REST API 设计思想由于k8s的Api是基于REST的设计思想,因此,不同种类的HTTP请求也就对应了不同的操作。比较常用的对应关系是:GET(SELECT):从服务器取出资源(一项或多项)。GET请求对应k8s api的获取信息功能。因...
在保证k8s集群成功运行的情况下,可以在任何一台联网的主机上向上文指定的IP+port发起HTTP请求,来查看k8s集群的各种信息情况。
K8s REST API 设计思想
由于k8s的Api是基于REST的设计思想,因此,不同种类的HTTP请求也就对应了不同的操作。比较常用的对应关系是:
- GET(SELECT):从服务器取出资源(一项或多项)。GET请求对应k8s api的获取信息功能。因此,如果是获取信息的命令都要使用GET方式发起HTTP请求。
- POST(CREATE):在服务器新建一个资源。POST请求对应k8s api的创建功能。因此,需要创建Pods、ReplicaSet或者service的时候请使用这种方式发起请求。
- PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。对应更新nodes或Pods的状态、ReplicaSet的自动备份数量等等。
- PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
- DELETE(DELETE):从服务器删除资源。在稀牛学院的学员使用完毕环境后,可以使用这种方式将Pod删除,释放资源。
具体关于RESTful Api的设计思想,详见阮老师的博客:http://www.ruanyifeng.com/blog/2014/05/restful_api.html
k8s REST api 使用指南 & 速查记录
# 首先,需要在K8s的master节点上开启K8s API 代理。这里选择8080端口
kubectl proxy --port=8080 &
# 其次,设置变量KUBERNETES_MASTER
KUBERNETES_MASTER=localhost:8080
1.根据给定的nginx-pod.json文件创建一个nginx :
curl $KUBERNETES_MASTER/api/v1/namespaces/default/pods \
-XPOST -H'Content-Type: application/json' -d@nginx-pod.json
ps : 也可以利用REST API的格式传入长串json文本
curl --header "Content-Type: application/json" \
--request POST \
--data '{"kind": "Pod","apiVersion": "v1","metadata":{"name": "nginx","namespace": "default","labels": {"name": "nginx"}},"spec": {"containers": [{"name": "nginx","image": "nginx","ports": [{"containerPort": 80}],"resources": {"limits": {"memory": "128Mi","cpu": "500m"}}}]}}' \
http://$KUBERNETES_MASTER/api/v1/namespaces/default/pods
2.获取Pods的列表
curl $KUBERNETES_MASTER/api/v1/pods
3.根据给定的文件创建nginx的service :
curl $KUBERNETES_MASTER/api/v1/namespaces/default/services \
-XPOST -H'Content-Type: application/json' -d@nginx-service.json
ps : 也可以利用REST API的格式传入长串json文本
curl --header "Content-Type: application/json" \
--request POST \
--data '{"kind": "Service","apiVersion": "v1","metadata": {"name": "nginx-service","namespace": "default","labels": {"name": "nginx"}},"spec": {"type":"NodePort","ports": [{"protocol":"TCP","port": 80}],"selector": {"name": "nginx"}}}' \
http://$KUBERNETES_MASTER/api/v1/namespaces/default/services
4.获取service的列表
curl $KUBERNETES_MASTER/api/v1/services
5.给定service中的详细信息
curl $KUBERNETES_MASTER/api/v1/namespaces/default/services/nginx-service/
6.删除nginx-service service
curl $KUBERNETES_MASTER/api/v1/namespaces/default/services/nginx-service -XDELETE
7.删除nginx pod
curl $KUBERNETES_MASTER/api/v1/namespaces/default/pods/nginx -XDELETE
更多推荐
所有评论(0)