在kubernetes中,除了可以使用kubectl工具来操作集群外,还可以直接使用API来操作集群。
如:通过API查看kubernetes版本信息:
访问POD:
kubernetes API Resources space
kube-apiserver 主要通过对外提供 API 的方式与其他组件进行交互,可以调用 kube-apiserver 的接口 $ curl -k https://
● core group:主要在 /api/v1 下;
● named groups:其 path 为 /apis/$NAME/$VERSION;
● 暴露系统状态的一些 API:如/metrics 、/healthz 等;
顶层节点包括
我们主要关心的是api和apis
api和apis
core group和named group:
core group的资源结构
named group资源结构
相较于core group、name group根据有组织性,比较新的功能和特性,都会体现在这个group中。
(1)在这个named api中,定义了诸如/apps、/networking.k8s.io等group;
(2)每个group下有多个version,如v1、v1beat1等;
(3)每个version下提供了多种resource;
(4)每种resource下定义了该resource对应的verbs操作
PS:我们常说的GVR(GroupVersionResource),就是上面的这个路径;
在kuberenetes API中,也会说明当前的Resource所属的group,如:POD所属的Group为core
你可以在kubernetes下查看具有哪些API path:
然后根据path,能够找到其下所定义的API Group:
如果你直接访问API,可能会被拦截,出现403错误,即禁止访问,此时可以指定证书文件来完成请求
另外一种方式,你可以使用kube proxy:
kube proxy启动了代理服务,本地监听端口默认为8001。kube proxy将使用定义在kube config文件中的认证信息转发请求到api server。