1、namespaced resourcesapi
所谓的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
2、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相似.再也不赘述.
3、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