K8s资源及其在API中的组织形式

网友投稿 249 2022-09-08

K8s资源及其在API中的组织形式

Kubernetes将API分割为多个逻辑组合,称为API群组,它们支持单独启用或禁用,并能够再次分解。API Server支持在不同的群组中使用不同的版本,允许各组以不同的速度演进,而且也支持同一群组同时存在不同的版本,如apps/v1、apps/v1beta2和apps/v1beta1,也因此能够不同的群组中使用同名的资源类型,从而能在稳定版本的群组及新的实验群组中以不同的特性同时使用同一个资源类型。群组化管理的API使得其可以更轻松地进行扩展。当前系统的API Server上的相关信息可通过kubectl api-versions命令获取。

kubectl api-versionsadmissionregistratioin.k8s.io/v1beta1...apps/v1...

k8s的API以层级结构组织在一起,每个API群组表现为一个以/apis为根路径的REST路径,不过核心群组core有一个专用的简化路径/api/v1。常用API群组可归为如下两类: 核心群组:REST路径为/api/v1,在资源的配置信息apiVersion字段中引用时可以不指定路径,而仅给出版本,如apiVersioin:v1 命名的群组:REST路径为​​​/apis/$GROUP_NAME/$VERSION​​​,例如/apis/apps/v1,它在apiVersioin字段中引用的格式为"​​apiVersion:$GROUP_NAME/$VERSION​​​",如apiVersion:apps/v1 总结起来,名称空间级别的每个资源类型在API中的URL路径表示都可简单抽象为形如"​​​/apis///namespaces//​​"的路径,如default名称空间中Deployment类型的路径为/apis/apps/v1/namespaces/default/deployments,通过此路径可获取到default名称空间中所有Deployment对象的列表:

kubectl get --raw /apis/apps/v1/namespaces/default/deployments | jq .{ "kind": "DeploymentList", ...}

k8s API仅接受及响应JSON格式的数据(JSON对象),同时为了方便,也允许用户提供YAML格式的POST对象,但API Server需要事先自行将其转换为JSON格式后方能提交。通过kubectl get TYPE/NAME -o yaml命令获取任何一个对象的YAML格式的配置清单,或使用Kubectl get TYPE/NAME -o json命令获取JSON格式的配置清单。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:百度520品牌营销精彩盘点!
下一篇:K8s使用ConfigMap配置Redis
相关文章

 发表评论

暂时没有评论,来抢沙发吧~