一 声明式API
在k8s中,'所有的配置'都是 json格式的,但为了'读写方便',通常将这些'配置写成yaml 格式',其运行的时候,还是会'靠yaml引擎'将其转化为json,apiserver '也仅接受json'的数据
'GVR' -->相对于'开发'来说;表现形式 -->'GVK'
查看集群中API的组织形式
kubectl get --raw /
从上图中我们也可以看出 'Kubernetes 的 API 对象'的'组织方式'
在'顶层',我们可以看到有一个'核心组'(由于历史原因,是 /api/v1 下的所有内容'而不是在 '/apis/core/v1 下面-->省略'core核心组的关键字')和'命名组'(路径 /apis/$NAME/$VERSION)和'系统范围内的实体',比如 /metrics
但是这个操作和我们'平时操作 HTTP 服务'的方式不太一样,这里我们可以通过 'kubectl proxy' 命令来开启对 apiserver 的访问
kubectl proxy -->'可以使API server监听在本地的8001端口上' -->'为访问kubernetes apiserver的REST api充当反向代理角色' -->'代理与api-server已经已经进行认证了'
然后重新'开启一个新的终端',我们可以通过如下方式来'访问批处理的 API 服务'
curl http://127.0.0.1:'8001'/apis/batch/v1
k8s标准API常见的组成
apiVersion '/<group>/version/'
备注:核心组'core'可以省略
常见API的'url构成'
1)/api/'core-->省略'/v1/namespace/${ns}/pod/${pod-name}
2)/apis/apps/v1/namespace/${ns}/deployment/${deploy_name}