0%

《Kubernetes》Kubernetes核心数据结构

Group、Version、Resource

Kubernetes将资源分组和版本化,形成Group(资源组)、Version(资源版本)、Resource(资源)

Kubernetes系统支持多个Group,每个Group支持多个Version,每个Version支持多个Resource,其中部分资源同时会拥有自己的子资源(即SubResource)

例如,Deployment资源拥有Status子资源。

在yaml资源定义中

apiVersion 指定 <group>/<version>

kind 指定 <resource>/<subresource>

kubectl api-versions 可以查看支持的所有资源组和资源版本,其表现形式为/

kubectl api-resources 列出当前Kubernetes系统支持的Resource资源列表。

资源对象描述文件定义

  • apiVersion:指定创建资源对象的资源组和资源版本,其表现形式为/,若是core资源组(即核心资源组)下的资源对象,其表现形式为
  • kind:指定创建资源对象的种类。
  • metadata:描述创建资源对象的元数据信息,例如名称、命名空间等。
  • spec:包含有关Deployment资源对象的核心信息,告诉Kubernetes期望的资源状态、副本数量、环境变量、卷等信息。
  • status:包含有关正在运行的Deployment资源对象的信息。

每一个Kubernetes资源对象都包含两个嵌套字段,即spec字段和status字段。

其中spec字段是必需的,它描述了资源对象的“期望状态”(Desired State),而status字段用于描述资源对象的“实际状态”(Actual State)

它是由Kubernetes系统提供和更新的。在任何时刻,Kubernetes控制器一直努力地管理着对象的实际状态以与期望状态相匹配。