为了更容易对API
进行扩展,Kubernetes 使用API Groups (API组)
进行标识。APIGroups 以及REST URL
中的路径进行定义。当前支持两类API groups
。
Core Groups (核心组)
,也可以称为Legacy Groups
,该组的REST路径位于/api/v1
, 作为 Kubernetes 最核心的 API,它是没有“组”的概念,例如 ”vl“,在资源对象的定义中表示为”apiVersion: v1“。具有分组信息的API,以
/apis/$GROUP_NAME/$VERSION
URL路径进行标识,在资源对象的定义中表示为apiVersion: $GROUP_NAME/$VERSION
(例如,apiVersion: batch/v1)。已支持的 API 组详细列表请参阅 Kubernetes API reference。
例如 Pod 的 API 说明如图所示,由于 Pod 属于核心资源对象,所以不存在某个扩展 API Group,页面显示为“Core" 在Pod的定义中为“apiVersion:v1”。
如果要启用或禁用特定的 API 组,则需要在 API Server 的启动参数中设置--runtime-config
进行声明,例如--runtime-config=batch/v2alphal
表示启用API组
的 “batch/v2alpha1”,也可以设置--runtime-config=batch/v1=false
表示禁用API组“batch/v1”。多个 API组的设置以逗号分隔。在当前的API Server
服务中,DaemonSets
、Deployments
、HorizontalPodAutoscalers
、Ingress
、Jobs
和ReplicaSets
所属的 API 组是默认启用的。
在未来的演进中, Kubernetes 将支持用户自定义资源对象和对它们的基本CRUD操作。 伴随着自定义资源对象,Kubernetes 的未来版本还将支持用户自定义API Server
,与 Kubernetes Master
的 API Server
共同工作,完成更复杂的资源对象管理工作。
开头处"Kubemetes"写错了
感谢,已修正。