一、namespaced resources
所谓的namespaced resources,就是这个resource是从属于某个namespace的, 比如pod, deployment, service都属于namespaced resource.
http://localhost:8080/api/v1/namespaces/default/pods/test-pod
可以看出, 该restful api的组织形式是:
api api版本 namespaces 所属的namespace 资源种类 所请求的资源名称
api v1 namespaces default pods test-pod
二、non-namespaced resources
http://localhost:8080/apis/rbac.authorization.k8s.io/v1/clusterroles/test-clusterrole
这里可以观察到它clusterrole与pod不同, apis表示这是一个非核心api. rbac.authorization.k8s.io指代的是api-group, 另外它没有namespaces字段, 其他与namespaced resources类似.不再赘述.
三、non-resource url
这类资源和pod, clusterrole都不同. 例如
http://localhost:8080/healthz/etcd
这就是用来确认etcd服务是不是健康的.它不属于任何namespace,也不属于任何api版本.
总结, k8s的REST API的设计结构为:
[api/apis]/api-group/api-version/namespaces/namespace-name/resource-kind/resource-name
apis/rbac.authorization.k8s.io/v1/namespaces/default/roles/test-role