API Groups

在kubernetes中,除了可以使用kubectl工具来操作集群外,还可以直接使用API来操作集群。
如:通过API查看kubernetes版本信息:

访问POD:

kubernetes API Resources space

kube-apiserver 主要通过对外提供 API 的方式与其他组件进行交互,可以调用 kube-apiserver 的接口 $ curl -k https://:6443或者通过其提供的 swagger-ui 获取到,其主要有以下三种 API:

● 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
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/

你可以在kubernetes下查看具有哪些API path:

然后根据path,能够找到其下所定义的API Group:

如果你直接访问API,可能会被拦截,出现403错误,即禁止访问,此时可以指定证书文件来完成请求

另外一种方式,你可以使用kube proxy:

kube proxy启动了代理服务,本地监听端口默认为8001。kube proxy将使用定义在kube config文件中的认证信息转发请求到api server。

posted @ 2022-11-08 10:39  cosmoswong  阅读(167)  评论(0编辑  收藏  举报