1 - APIGroup

APIGroup 包含组的名称、支持的版本以及首选版本。

apiVersion: meta/v1

import "k8s.io/apimachinery/pkg/apis/meta/v1"

APIGroup

APIGroup 包含组的名称、支持的版本以及首选版本。


字段描述
apiVersion
string
apiVersion 定义了对象这种表示形式的带版本模式。服务器应将已识别的模式转换为最新的内部值, 并可以拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
kind
string
APIVerver 定义了对象这种表示形式的带版本模式。服务器应将已识别的模式转换为最新的内部值, 并可以拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
name *
string
name 是该组的名称。
preferredVersion
GroupVersionForDiscovery
preferredVersion 是 API 服务器首选的版本,通常也是存储版本。
serverAddressByClientCIDRs
ServerAddressByClientCIDR array
一个由客户端 CIDR 映射到服务器地址的映射表,这些服务器正为该组提供服务。 这是为了帮助客户端以网络效率最高的方式访问服务器。客户端可以根据其所匹配的 CIDR, 使用相应的服务器地址。在存在多个匹配项的情况下,客户端应使用前缀最长的那条 CIDR。 服务器仅返回它认为客户端能够匹配的 CIDR。例如:只有当客户端使用内部 IP 访问服务器时, 主控节点才会返回内部 IP 段的 CIDR。服务器按顺序查看 `X-Forwarded-For` 头、`X-Real-Ip` 头或 `request.RemoteAddr` 来获取客户端 IP。
versions *
GroupVersionForDiscovery array
versions 是该组支持的版本。

APIGroupList

APIGroupList 是 APIGroup 的列表,用于允许客户端发现 /apis 路径下的 API。


字段描述
apiVersion
string
apiVersion 定义了对象这种表示形式的带版本模式。服务器应将已识别的模式转换为最新的内部值, 并可以拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
groups *
APIGroup array
groups 是 APIGroup 的列表。
kind
string
kind 是一个字符串值,表示对象代表的 REST 资源。 服务器可能会根据客户端提交的请求端点来推断此值,不能被更新。驼峰命名法。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

2 - APIResource

APIResource 指定了资源的名称以及该资源是否具有命名空间作用域。

apiVersion: meta/v1

import "k8s.io/apimachinery/pkg/apis/meta/v1"

APIResource

APIResource 指定了资源的名称以及该资源是否具有命名空间作用域。


FieldDescription
categories
string array
categories 是该资源所属的分组资源列表(例如 “all”)。
group
string
group 是该资源的首选组。若为空,则表示所属资源列表的组。对于子资源,该值可能不同,例如:"Scale"。
kind *
string
kind 是该资源的类型(例如 “Foo” 是资源 “foo” 的类型)。
name *
string
name 是该资源的复数名称。
namespaced *
boolean
namespaced 表示该资源是否具有命名空间作用域。
shortNames
string array
shortNames 是该资源建议的短名称列表。
singularName *
string
singularName 是资源的单数名称。这允许客户端以不透明的方式处理复数和单数形式。 singularName 更适合用于报告单个条目的状态,在 `kubectl` CLI 界面下单数和复数形式都是被允许的。
storageVersionHash
string
存储版本(Storage Version)的哈希值,即该资源在写入数据存储时所转换到的版本。 该值必须被客户端视为不透明;仅可对该值进行相等性比较。 这是一项 Alpha 特性,未来可能发生变化或被移除。只有启用了 `StorageVersionHash` 特性门控后, apiserver 才会填充此字段。即使该字段升级为正式发布(GA),它也将保持可选。
verbs *
string array
verbs 是该资源支持的 kube 动词列表(包括 get、list、watch、create、update、patch、delete、deletecollection 和 proxy)。
version
string
version 是该资源的首选版本。若为空,则表示所属资源列表的版本。 对于子资源,该值可能不同,例如:"v1"(在核心资源的 v1beta1 版本中)。

APIResourceList

APIResourceList 是 APIResource 的列表,用于公开特定组(group)和版本(version)下支持的资源名称, 以及该资源是否属于命名空间(namespaced)范围。


FieldDescription
apiVersion
string
APIVersion 定义了对象这种表示形式的带版本模式。 服务器应将已识别的模式转换为最新的内部值,并可以拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
groupVersion *
string
groupVersion 是该 APIResourceList 所属的组和版本。
kind
string
kind 是该对象表示的 REST 资源的字符串值。 服务器可能根据客户端提交的请求端点推断出此值,不能更新。 此值为驼峰命名法。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
resources *
APIResource array
resources 包含资源的名称以及它们是否属于命名空间范围。

3 - APIVersions

apiVersions 列出了可用的版本,以便客户端能够发现位于 /api(即旧版 v1 API 的根路径)处的 API。

apiVersion: meta/v1

import "k8s.io/apimachinery/pkg/apis/meta/v1"

APIVersions

apiVersions 列出了可用的版本,以便客户端能够发现位于 /api(即旧版 v1 API 的根路径)处的 API。


字段描述
apiVersion
string
apiVersions 定义了该对象表示形式的版本化模式(schema)。 服务器应将已识别的模式转换为最新的内部值,并可拒绝无法识别的值。 更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
kind
string
kind 是一个字符串值,用于标识该对象所代表的 REST 资源。 服务器可以根据客户端提交请求的端点推断出该值。 该字段不可更新。采用驼峰命名法(CamelCase)。 更多信息请参阅: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
serverAddressByClientCIDRs *
ServerAddressByClientCIDR array
这是一个将客户端 CIDR 映射到负责该组服务的服务器地址的映射表, 旨在帮助客户端以网络效率最高的方式连接到服务器。客户端可根据自身匹配的 CIDR 选择相应的服务器地址;若存在多个匹配项,客户端应使用最长匹配的 CIDR。 服务器仅返回其判定为客户端能够匹配的 CIDR。例如:如果客户端通过内部 IP 访问服务器, 主节点(master)将仅返回内部 IP CIDR。服务器按以下顺序检查请求头或属性以获取客户端 IP:`X-Forwarded-For` 头部、`X-Real-Ip` 头部或 `request.RemoteAddr`。
versions *
string array
versions 是可用的 API 版本。

4 - Condition

Condition 包含了该 API 资源当前状态某一方面的详细信息。

apiVersion: meta/v1

import "k8s.io/apimachinery/pkg/apis/meta/v1"

Condition

Condition 包含了该 API 资源当前状态某一方面的详细信息。


字段描述
lastTransitionTime *
Time
lastTransitionTime 是该条件从一种状况转换为另一种状况的最后时间。 理想情况下,这应对应于底层状况发生变更的时间;若无法确定该时间,则使用 API 字段发生变更的时间也是可以接受的。
message *
string
message 是一个人类可读的消息,用于说明有关该转换的详细信息。该消息可以为空字符串。
observedGeneration
integer
observedGeneration 表示该状况是基于哪个 .metadata.generation 设置的。 例如,如果当前的 .metadata.generation 为 12,而 .status.conditions[x].observedGeneration 为 9, 则说明该状态相对于实例的当前状况而言已过期。
reason *
string
reason 字段包含一个程序化标识符,用于指示该条件上一次状态转换的原因。 特定条件类型的生产者可以定义该字段的预期值及其含义,并说明这些值是否属于 API 保证的范畴。 该字段的值应为驼峰命名法(CamelCase)字符串,且不能为空。
status *
string
条件的状态,取值为 True、False 或 Unknown 之一。
type *
string
采用驼峰命名法(CamelCase)或 foo.example.com/CamelCase 形式的条件类型。

5 - DeleteOptions

删除 API 对象时,可以指定 DeleteOptions。

apiVersion: meta/v1

import "k8s.io/apimachinery/pkg/apis/meta/v1"

DeleteOptions

删除 API 对象时,可以指定 DeleteOptions。


字段描述
apiVersion
string
apiVersion 定义了该对象表示形式的版本化模式(schema)。 服务器应将已识别的模式转换为最新的内部值,并可拒绝无法识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
dryRun
string array
如果存在,则表示不应保存修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。 有效值包括:- All:将处理所有 dryRun 阶段。
gracePeriodSeconds
integer
对象被删除前需等待的时长(以秒为单位)。该值必须是非负整数;值为 0 表示立即删除。 若该值为 nil,则使用指定类型的默认宽限期。未指定时,默认采用针对该对象的特定值;值为 0 表示立即删除。
ignoreStoreReadErrorWithClusterBreakingPotential
boolean
如果设置为 true,当正常的删除流程因“对象损坏”错误而失败时,系统将触发该资源的“不安全删除”(unsafe deletion)。 若资源因以下原因无法从底层存储成功获取,则被视为损坏: a) 数据无法转换(例如解密失败),或 b) 无法解码为对象。注意:不安全删除会忽略终结器(finalizer)约束,跳过前置条件检查,并直接从存储中移除该对象。 警告:如果被不安全删除的资源所关联的工作负载依赖于正常的删除流程,此操作可能会导致集群故障。 请务必在充分了解操作后果的情况下使用。默认值为 false,用户必须明确启用该选项。
kind
string
kind 是一个字符串值,用于标识该对象所代表的 REST 资源。服务器可以根据客户端提交请求的端点推断出该值。 该字段不可更新。采用驼峰命名法(CamelCase)。更多信息请参阅: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
orphanDependents
boolean
已弃用:请使用 PropagationPolicy,该字段将在 1.7 版本中弃用。用于指定是否将从属对象置为孤立状态。 若设为 true 或 false,则会将 "orphan" 终结器(finalizer)添加至对象的终结器列表或从中移除。 此字段与 PropagationPolicy 仅可设置其一,不可同时设置。
preconditions
Preconditions
必须在执行删除操作前满足此条件。如果无法满足,将返回 409 Conflict 状态码。
propagationPolicy
string
决定是否以及如何执行垃圾回收。此字段与 `OrphanDependents` 字段只能设置其中之一, 不能同时设置。默认策略取决于 `metadata.finalizers` 中现有的终结器(finalizer)设置以及该资源特定的默认策略。 可选值包括:'Orphan' —— 将从属资源设为孤儿(即保留从属资源);'Background' —— 允许垃圾回收器在后台删除从属资源; 'Foreground' —— 一种级联策略,在前台删除所有从属资源。

6 - EventSource

EventSource 包含有关事件的信息。

apiVersion: v1

import "k8s.io/api/core/v1"

EventSource

EventSource 包含有关事件的信息。


字段描述
component
string
生成该事件的组件。
host
string
生成该事件的节点名称。

7 - FieldSelectorRequirement

FieldSelectorRequirement 是一种选择器,包含键(key)、值(values)以及用于关联键与值的运算符(operator)。

apiVersion: meta/v1

import "k8s.io/apimachinery/pkg/apis/meta/v1"

FieldSelectorRequirement

FieldSelectorRequirement 是一种选择器,包含键(key)、值(values) 以及用于关联键与值的运算符(operator)。


字段描述
key *
string
key 是选择器应用的字段选择器键。
operator *
string
operator 表示键与值之间的关系。有效运算符包括 In、NotIn、Exists、DoesNotExist。 运算符列表可能会在未来扩展。
values
string array
values 是一个字符串值数组。如果运算符是 In 或 NotIn,则 values 数组必须非空;如果运算符是 Exists 或 DoesNotExist,则 values 数组必须为空。

8 - FieldsV1

FieldsV1 将一组字段存储在类似 Trie 的数据结构中,格式为 JSON。

每个键要么是一个 “.”,表示字段本身,并且始终映射到空集; 要么是一个字符串,表示子字段或项。该字符串遵循以下四种格式之一: f:<name>,其中 <name> 是结构体中字段的名称,或映射中的键; v:<value>,其中 <value> 是列表项的精确 JSON 格式值; i:<index>,其中 <index> 是项在列表中的位置; k:<keys>,其中 <keys> 是列表项的键值。 是列表项的键字段到其唯一值的映射。如果某个键映射到空的字段值, 则该键所代表的字段属于该集合。

确切格式定义在 sigs.k8s.io/structured-merge-diff 中。

apiVersion: meta/v1

import "k8s.io/apimachinery/pkg/apis/meta/v1"

FieldsV1

FieldsV1 以 JSON 格式将一组字段存储在类似 Trie 的数据结构中。

FieldsV1 将一组字段存储在类似 Trie 的数据结构中,格式为 JSON。\n\n 每个键要么是一个 “.”,表示字段本身,并且始终映射到空集; 要么是一个字符串,表示子字段或项。该字符串遵循以下四种格式之一: f:<name>,其中 <name> 是结构体中字段的名称,或映射中的键; v:<value>,其中 <value> 是列表项的精确 JSON 格式值; i:<index>,其中 <index> 是项在列表中的位置; k:<keys>,其中 <keys> 是列表项的键值。 是列表项的键字段到其唯一值的映射。如果某个键映射到空的字段值, 则该键所代表的字段属于该集合。\n\n 确切格式定义在 sigs.k8s.io/structured-merge-diff 中。

具体格式定义在 sigs.k8s.io/structured-merge-diff 中。


9 - GroupResource

GroupResource 指定了 API 组和资源,但不强制指定版本。这在查找阶段很有用,因为部分类型可能无效。

apiVersion: meta/v1

import "k8s.io/apimachinery/pkg/apis/meta/v1"

GroupResource

GroupResource 指定了 API 组和资源,但不强制指定版本。这在查找阶段很有用,因为部分类型可能无效。


字段描述
group *
string
resource *
string

10 - GroupVersionForDiscovery

GroupVersion 包含版本号的 group/versionversion 字符串。它被定义为结构体以保持可扩展性。

apiVersion: meta/v1

import "k8s.io/apimachinery/pkg/apis/meta/v1"

GroupVersionForDiscovery

GroupVersion 包含版本号的 group/versionversion 字符串。它被定义为结构体以保持可扩展性。


字段描述
groupVersion *
string
groupVersion 指定了 API 组和版本,格式为 "group/version"。
version *
string
version 以 "version" 的格式指定版本。这样做是为了避免客户端需要拆分 GroupVersion 的麻烦。

11 - LabelSelector

标签选择器是对一组资源进行的标签查询。matchLabelsmatchExpressions 的结果会进行“与”(AND)运算。空的标签选择器匹配所有对象;为 null 的标签选择器不匹配任何对象。

apiVersion: meta/v1

import "k8s.io/apimachinery/pkg/apis/meta/v1"

LabelSelector

标签选择器是对一组资源进行的标签查询。matchLabelsmatchExpressions 的结果会进行“与”(AND)运算。 空的标签选择器匹配所有对象;为 null 的标签选择器不匹配任何对象。


字段描述
matchExpressions
LabelSelectorRequirement array
matchExpressions 是一组标签选择器要求。这些要求之间是“与”(AND)的关系。
matchLabels
object
matchLabels 是一个 {key, value} 键值对映射。matchLabels 映射中的单个 {key, value} 等同于 matchExpressions 中的一个元素,该元素的 key 字段为 "key",operator 为 "In",且 values 数组仅包含 "value"。各项要求之间为“与”(AND)的关系。

12 - LabelSelectorRequirement

标签选择器需求是一种包含键、值以及用于关联键与值的运算符的选择器。

apiVersion: meta/v1

import "k8s.io/apimachinery/pkg/apis/meta/v1"

LabelSelectorRequirement

标签选择器需求是一种包含键、值以及用于关联键与值的运算符的选择器。


字段描述
key *
string
key 是选择器所作用的标签键(label key)。
operator *
string
运算符表示与一组值之间的关键关系。有效的运算符包括 In、Not、Exists 和 DoesNotExist。
values
string array
values 是一个字符串值数组。如果运算符为 In 或 NotIn,则 values 数组不能为空;如果运算符为 Exists 或 DoesNotExist,则 values 数组必须为空。在执行策略性合并补丁(strategic merge patch)操作时,该数组会被替换。

13 - ManagedFieldsEntry

ManagedFieldsEntry 包含工作流 ID、字段集(FieldSet)以及该字段集所适用的资源的组版本(group version)。

apiVersion: meta/v1

import "k8s.io/apimachinery/pkg/apis/meta/v1"

ManagedFieldsEntry

ManagedFieldsEntry 包含工作流 ID、字段集(FieldSet)以及该字段集所适用的资源的组版本(group version)。


字段描述
apiVersion
string
apiVersion 定义了该字段集所适用的资源版本。其格式为 "group/version",与顶层的 apiVersion 字段相同。 必须追踪字段集的版本,因为该字段集无法自动转换。
fieldsType
string
fieldsType 是用于区分不同字段格式与版本的标识符。目前仅有一种可能的取值:"FieldsV1"。
fieldsV1
FieldsV1
fieldsV1 包含 "FieldsV1" 类型中所述的首个 JSON 版本格式。
manager
string
manager 是管理这些字段的工作流的标识符。
operation
string
operation 是导致创建此 ManagedFieldsEntry 的操作类型。该字段仅有的有效值为 "Apply" 和 "Update"。
subresource
string
subresource 是用于更新该对象的子资源名称;如果对象是通过主资源更新的,则该字段为空字符串。 该字段的值用于区分不同的管理器(manager),即使它们使用相同的名称。例如,使用相同管理器名称时,状态更新将与常规更新区分开来。 请注意,apiVersion 字段与 subresource 字段无关,它始终对应于主资源的版本。
time
Time
time 字段记录了 ManagedFields 条目添加时的时间戳。如果新增了字段,或者管理器修改了其所管辖字段的值或移除了某个字段, 该时间戳也会随之更新;但如果某个字段因被另一位管理器接管而从条目中移除,该时间戳则不会更新。

14 - MatchCondition

matchExpressions 是一组标签选择器要求。这些要求之间是“与”(AND)的关系。

apiVersion: admissionregistration.k8s.io/v1

import "k8s.io/api/admissionregistration/v1"

MatchCondition

matchExpressions 是一组标签选择器要求。这些要求之间是“与”(AND)的关系。


字段描述
expression *
string
`expression` 表示将由 CEL 求值的表达式, 其求值结果必须为布尔值(bool)。CEL 表达式可以访问 `AdmissionRequest` 和 `Authorizer` 的内容, 这些内容被组织为以下 CEL 变量: `object` - 传入请求中的对象(对于 DELETE 请求,该值为 null); `oldObject` - 现有对象(对于 CREATE 请求,该值为 null); `request` - 准入请求的属性(对应 `/pkg/apis/admission/types.go#AdmissionRequest`); `authorizer` - CEL 授权器(Authorizer), 可用于对请求的主体(用户或服务账号)执行授权检查(详见 https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz); `authorizer.requestResource` - 基于 `authorizer` 构建并配置了请求资源的 CEL 资源检查对象(ResourceCheck)。 CEL 相关文档: https://kubernetes.io/zh-cn/docs/reference/using-api/cel/。 此字段为必填项。
name *
string
name 是该匹配条件的标识符,用于 MatchConditions 的策略性合并以及日志记录。 名称应能体现关联表达式的含义。此名称必须是合法的标识符, 由字母数字字符、'-'、'_' 或 '.' 组成,且首尾字符必须为字母数字字符(例如 'MyName'、'my.name' 或 '123-abc';用于验证的正则表达式为 '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]'),并可包含可选的 DNS 子域名作为前缀及 '/' 分隔符(例如 'example.com/MyName')。 此字段为必填项。

15 - MicroTime

MicroTime 是具有微秒级精度的 Time 版本。

apiVersion: meta/v1

import "k8s.io/apimachinery/pkg/apis/meta/v1"

MicroTime

MicroTime 是具有微秒级精度的 Time 版本。


16 - NamedRuleWithOperations

NamedRuleWithOperations 是由 Operations 以及包含资源名称 ResourceNames 的资源 Resources 组成的元组。

apiVersion: admissionregistration.k8s.io/v1

import "k8s.io/api/admissionregistration/v1"

NamedRuleWithOperations

NamedRuleWithOperations 是由 Operations 以及包含资源名称 ResourceNames 的资源 Resources 组成的元组。


字段描述
apiGroups
string array
apiGroups 是资源所属的 API 组。'*' 代表所有组。如果包含 '*',则切片长度必须为 1。必填项。
apiVersions
string array
apiVersions 是资源所属的 API 版本。'*' 代表所有版本。如果包含 '*',则切片长度必须为 1。必填项。
operations
string array
operations 指定了准入钩子(admission hook)关注的操作类型,包括 CREATE、UPDATE、DELETE、CONNECT, 或者使用 `*` 来涵盖所有这些操作以及未来新增的准入操作。如果使用了 `*`,则该切片的长度必须为 1。必填项。
resourceNames
string array
resourceNames 是一个可选的名称白名单,用于指定该规则适用的对象;若该集合为空,则表示允许所有对象。
resources
string array
resources 是此规则适用的资源列表。例如:`pods` 指 Pod 资源;`pods/log` 指 Pod 的 `log` 子资源; `*` 指所有资源(但不包括子资源);`pods/*` 指 Pod 的所有子资源;`*/scale` 指所有 `scale` 子资源; `*/*` 指所有资源及其子资源。如果使用了通配符,验证规则将确保各资源之间互不重叠。根据所处的对象类型, 某些情况下可能不允许使用子资源。此字段为必填项。
scope
string
scope 指定了此规则的适用范围。有效值为 "Cluster"、"Namespaced" 和 "*"。 "Cluster" 表示仅集群作用域(cluster-scoped)的资源匹配此规则;Namespace API 对象属于集群作用域资源。 "Namespaced" 表示仅命名空间作用域(namespaced)的资源匹配此规则。 "*" 表示无范围限制。子资源(subresources)的适用范围与其父资源相同。默认值为 "*"。

可能的枚举值:
- `"*"` 表示包含所有范围。
- `"Cluster"` 表示范围仅限于集群作用域对象。Namespace 对象属于集群作用域对象。
- `"Namespaced"` 表示范围仅限于命名空间作用域对象。

17 - NonResourceAttributes

NonResourceAttributes 包含了可供授权器(Authorizer)接口用于非资源请求的授权属性。

apiVersion: authorization.k8s.io/v1

import "k8s.io/api/authorization/v1"

NonResourceAttributes

NonResourceAttributes 包含了可供授权器(Authorizer)接口用于非资源请求的授权属性。


字段描述
path
string
path 是请求的 URL 路径
verb
string
verb 是标准的 HTTP 动词

18 - NonResourceRule

NonResourceRule 包含描述非资源规则的信息。

apiVersion: authorization.k8s.io/v1

import "k8s.io/api/authorization/v1"

NonResourceRule

NonResourceRule 包含描述非资源规则的信息。


字段描述
nonResourceURLs
string array
nonResourceURLs 是一组用户应有权访问的部分 URL。允许使用 "*",但仅限于作为路径的完整末尾部分;"*" 表示所有动词。
verbs *
string array
verbs 是 Kubernetes 非资源 API 动词的列表,例如:get、post、put、delete、patch、head、options。其中 "*" 表示所有动词。

19 - ObjectMeta

ObjectMeta 是所有持久化资源(包括用户必须创建的所有对象)都必须具备的元数据。

apiVersion: meta/v1

import "k8s.io/apimachinery/pkg/apis/meta/v1"

ObjectMeta

ObjectMeta 是所有持久化资源(包括用户必须创建的所有对象)都必须具备的元数据。


字段描述
annotations
object
annotations(注解)是随资源一起存储的非结构化键值对映射,可由外部工具设置,用于存储和检索任意元数据。 它们不可查询,且在修改对象时应予以保留。更多信息: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/annotations
creationTimestamp
Time
creationTimestamp 是一个时间戳,表示该对象创建时的服务器时间。不保证在不同操作之间遵循 “happens-before”(先行发生)顺序。客户端不可设置此值。该值采用 RFC3339 格式,并以 UTC 时间表示。由系统自动填充。只读。对于列表类型,该值为 null。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
deletionGracePeriodSeconds
integer
该对象在从系统中移除前允许进行优雅终止的秒数。仅在设置了 deletionTimestamp 时才会设置此字段。该值只能被缩短。只读。
deletionTimestamp
Time
deletionTimestamp 是该资源将被删除的 RFC 3339 格式日期和时间。当用户请求进行优雅删除(graceful deletion)时, 该字段由服务器设置,客户端无法直接对其进行设置。一旦 finalizers(终结器)列表为空,且时间超过了该字段指定的时间点, 该资源即被视为已删除(即不再出现在资源列表中,也无法通过名称访问)。只要 finalizers 列表中仍有条目,删除操作就会被阻塞。 一旦设置了 deletionTimestamp,该值便不可被取消设置或推迟到更晚的时间点,尽管可以缩短该时间或在到达该时间点之前删除资源。 例如,用户可以请求在 30 秒后删除某个 Pod。kubelet 接收到请求后,会向该 Pod 中的容器发送优雅终止信号。 30 秒后,kubelet 会向容器发送强制终止信号(SIGKILL),并在完成清理工作后将该 Pod 从 API 中移除。 若发生网络分区,该对象可能会在该时间戳之后继续存在,直到管理员或自动化流程确认该资源已完全终止。 如果未设置该字段,则表示未请求对该对象进行优雅删除。该字段在请求优雅删除时由系统自动填充。为只读字段。更多信息请参阅: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
finalizers
string array
patch strategy: merge
在对象从注册表中删除之前,该列表必须为空。列表中的每一项都是一个标识符,指向负责将该项从列表中移除的组件。 如果对象的 deletionTimestamp(删除时间戳)非空,则该列表中的项只能被移除。 终结器(finalizers)的处理和移除顺序不固定;之所以不强制规定顺序,是因为强制排序会带来终结器处理过程陷入停滞(stuck)的重大风险。 finalizers 是一个共享字段,任何拥有相应权限的参与者(actor)都可以对其进行重新排序。 如果按顺序处理终结器列表,可能会出现这样一种情况:负责列表中第一个终结器的组件, 正在等待由负责列表中后续终结器的组件所产生的信号(如字段值、外部系统信号或其他信号),从而导致死锁。 若不强制规定顺序,终结器之间便可自由安排执行次序,且不会因列表顺序的变动而受到影响。
generateName
string
generateName 是一个可选的前缀,仅在未提供 Name 字段时由服务器用于生成唯一名称。 如果使用了该字段,返回给客户端的名称将与传入的名称不同;该值会与一个唯一后缀组合使用。 所提供的值遵循与 Name 字段相同的验证规则,且可能会因服务器端确保唯一性所需的后缀长度而被截断。 如果指定了该字段且生成的名称已存在,服务器将返回 409 状态码。仅在未指定 Name 时生效。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency
generation
integer
表示目标状态特定版本的序列号。由系统填充。只读。
labels
object
用于组织和分类(限定范围及筛选)对象的字符串键值对映射。可与 ReplicationController 和 Service 的选择器相匹配。更多信息: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/labels
managedFields
ManagedFieldsEntry array
managedFields 将工作流 ID(workflow-id)和版本映射到由该工作流管理的字段集合。 这主要用于内部管理,用户通常无需设置或理解该字段。工作流名称可以是用户名、控制器名称,或者是诸如 “ci-cd” 之类的特定应用路径名称。其中的字段集合始终采用该工作流在修改对象时所使用的版本。
name
string
name 在命名空间内必须唯一。创建资源时必须指定名称,尽管某些资源允许客户端请求自动生成合适的名称。 名称主要用于确保创建操作的幂等性以及配置定义。名称不可更新。更多信息: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/names#names
namespace
string
namespace 定义了一个作用域,在该作用域内每个名称必须是唯一的。空的命名空间等同于 "default" 命名空间,但 "default" 是其标准表示形式。并非所有对象都必须归属于某个命名空间——对于此类对象,该字段的值为空。 该值必须符合 DNS_LABEL 规范,且不可更新。更多信息请参阅: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/namespaces
ownerReferences
OwnerReference array
patch strategy: merge on key uid
该对象所依赖的对象列表。如果列表中的所有对象均已被删除,则该对象将被垃圾回收。 如果该对象由控制器管理,则该列表中会包含指向该控制器的条目,且该条目的 controller 字段会被设为 true。 管理该对象的控制器只能有一个。
resourceVersion
string
这是一个代表该对象内部版本的不透明值,客户端可利用它来判断对象是否发生了变更。 该值可用于乐观并发控制、变更检测以及针对单个或一组资源的“监视”(watch)操作。 客户端必须将这些值视为不透明数据,并原样传回服务器。它们可能仅对特定资源或资源集合有效。由系统自动填充。只读。 客户端必须将该值视为不透明数据。更多信息请参阅: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
selfLink
string
已弃用:selfLink 是一个旧版只读字段,系统不再对其进行填充。
uid
string
UID 是该对象在时间和空间上的唯一标识符。它通常由服务器在资源成功创建时生成,且在执行 PUT 操作时不允许更改。 由系统自动填充。只读。更多信息:https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/names#uids

20 - ObjectReference

ObjectReference 包含足够的信息,使你能够检查或修改所引用的对象。

apiVersion: v1

import "k8s.io/api/core/v1"

ObjectReference

ObjectReference 包含足够的信息,使你能够检查或修改所引用的对象。


字段描述
apiVersion
string
引用对象的 API 版本。
fieldPath
string
如果引用的是对象的某个部分而非整个对象,该字符串应包含有效的 JSON 或 Go 语言风格的字段访问语句, 例如 `desiredState.manifest.containers[2]`。例如,若对象引用指向 Pod 中的某个容器, 其值可能为 `"spec.containers{name}"`(其中 `name` 指代触发该事件的容器名称), 或者若未指定容器名称,则为 `"spec.containers[2]"`(指该 Pod 中索引为 2 的容器)。 采用这种语法,仅仅是为了提供一种明确的方式来引用对象的特定部分。
kind
string
引用对象的类型。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
name
string
引用对象的名称。更多信息: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/names/#names
namespace
string
引用对象的命名空间。更多信息: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/namespaces/
resourceVersion
string
该引用所指向的具体 resourceVersion(如有)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
uid
string
引用对象的唯一标识符(UID)。更多信息: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/names/#uids

21 - OwnerReference

OwnerReference 包含足以识别所属对象的信息。所属对象必须与从属对象位于同一命名空间,或者是集群作用域对象,因此其中不包含命名空间字段。

apiVersion: meta/v1

import "k8s.io/apimachinery/pkg/apis/meta/v1"

OwnerReference

OwnerReference 包含足以识别所属对象的信息。 所属对象必须与从属对象位于同一命名空间,或者是集群作用域对象, 因此其中不包含命名空间字段。


字段描述
apiVersion *
string
被引用对象的 API 版本。
blockOwnerDeletion
boolean
如果该值为 true,且所属对象(owner)拥有 "foregroundDeletion" 终结器(finalizer),则在移除此引用之前,该所属对象无法从键值存储中被删除。 关于垃圾回收器如何与该字段交互并强制执行前台删除,请参阅 https://kubernetes.io/zh-cn/docs/concepts/architecture/garbage-collection/#foreground-deletion。 默认值为 false。设置此字段需要用户拥有针对该所属对象的 "delete" 权限,否则将返回 422(Unprocessable Entity)错误。
controller
boolean
如果为 true,此引用指向管理控制器。
kind *
string
kind 引用。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
name *
string
被引用对象的名称。更多信息: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/names#names
uid *
string
被引用对象的 UID。更多信息: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/names#uids

22 - ParamKind

ParamKind 是由 Group、Kind 和 Version 组成的元组。

apiVersion: admissionregistration.k8s.io/v1

import "k8s.io/api/admissionregistration/v1"

ParamKind

ParamKind 是由 Group、Kind 和 Version 组成的元组。


字段描述
apiVersion
string
apiVersion 是资源所属的 API 组版本,格式为 "group/version"。必填项。
kind
string
kind 是资源所属的 API 类型。必填。

23 - ParamRef

ParamRef 描述了如何定位那些将用作输入参数的参数,这些参数用于策略绑定所应用的规则表达式。

apiVersion: admissionregistration.k8s.io/v1

import "k8s.io/api/admissionregistration/v1"

ParamRef

ParamRef 描述了如何定位那些将用作输入参数的参数,这些参数用于策略绑定所应用的规则表达式。


字段描述
name
string
`name` 是所引用资源的名称。必须设置 `name` 或 `selector` 中的一项, 但两者互斥;若设置了其中一项,则另一项必须留空。 若要配置适用于所有准入请求的单一参数, 可设置 `name` 字段并将 `selector` 留空; 若 `paramKind` 属于命名空间作用域(namespace-scoped),则还需指定命名空间。
namespace
string
`namespace` 字段指定了所引用资源所在的命名空间, 用于将参数(params)的查找范围限定在特定命名空间内。 该字段适用于 `name` 和 `selector` 字段。 若要在策略中使用特定命名空间的参数,可将 `paramKind` 指定为命名空间作用域(namespace-scoped)的资源,并将此字段留空。 - 如果 `paramKind` 为集群作用域(cluster-scoped),则不得设置此字段; 设置该字段将导致配置错误。 - 如果 `paramKind` 为命名空间作用域,且此字段留空, 系统将使用待准入评估对象所属的命名空间。 请注意,若此字段留空,绑定(binding)不得匹配任何集群作用域的资源,否则将导致错误。
parameterNotFoundAction
string
`parameterNotFoundAction` 用于控制当资源存在且名称或选择器有效, 但绑定未匹配到任何参数时的行为。如果该值设置为 `Allow`, 则未匹配到参数的情况将被视为绑定验证成功; 如果设置为 `Deny`,则未匹配到参数的情况将触发该策略的 `failurePolicy`。 可选值为 `Allow` 或 `Deny`(必填)。
selector
LabelSelector
可以使用 `selector` 根据标签匹配多个 `param` 对象。若指定 `selector: {}`, 则会匹配 `ParamKind` 对应的所有资源。如果匹配到多个 `param` 对象, 系统将针对每个对象评估策略表达式,并将评估结果进行“与”(AND)运算。 `name` 和 `selector` 必须设置其中之一,但两者互斥; 若设置了其中一个,则另一个必须留空。

24 - Patch

此 Patch 旨在为 Kubernetes PATCH 请求体提供具体的名称和类型。

apiVersion: meta/v1

import "k8s.io/apimachinery/pkg/apis/meta/v1"

Patch

此 Patch 旨在为 Kubernetes PATCH 请求体提供具体的名称和类型。


25 - PolicyRule

PolicyRule 包含描述策略规则的信息,但不包含关于该规则适用于哪些对象或适用于哪个命名空间的信息。

apiVersion: rbac.authorization.k8s.io/v1

import "k8s.io/api/rbac/v1"

PolicyRule

PolicyRule 包含描述策略规则的信息,但不包含关于该规则适用于哪些对象或适用于哪个命名空间的信息。


字段描述
apiGroups
string array
apiGroups 是包含相关资源的 API 组的名称。如果指定了多个 API 组, 则针对其中任一 API 组内所列资源发起的任何操作请求都将被允许。 "" 表示核心 API 组,"*" 表示所有 API 组。
nonResourceURLs
string array
nonResourceURLs 是一组用户应有权访问的部分 URL。 允许使用通配符 "*",但仅限于路径的最后一段。由于非资源 URL 不区分命名空间, 该字段仅适用于由 ClusterRoleBinding 引用的 ClusterRole。 规则既可以针对 API 资源(如 "pods" 或 "secrets"),也可以针对非资源 URL 路径(如 "/api"), 但不能同时针对两者。
resourceNames
string array
resourceNames 是一个可选的名称白名单,用于指定该规则适用的对象; 若该集合为空,则表示允许所有对象。
resources
string array
resources 是该规则适用的资源列表。"*" 代表所有资源。
verbs *
string array
verbs 是一个动词列表,适用于该规则中包含的所有 ResourceKind。 其中,"*" 代表所有动词。

26 - Preconditions

在执行某项操作(更新、删除等)之前,必须满足 Preconditions。

apiVersion: meta/v1

import "k8s.io/apimachinery/pkg/apis/meta/v1"

Preconditions

在执行某项操作(更新、删除等)之前,必须满足 Preconditions。


字段描述
resourceVersion
string
指定目标 resourceVersion
uid
string
指定目标 UID。

27 - Quantity

Quantity 是数字的定点表示。它提供了方便的 JSON 和 YAML 编组/解组功能,以及 String()AsInt64() 访问器。

序列化格式如下:


   (Note that &lt;suffix&gt; may be empty, from the &#34;&#34; case in &lt;decimalSI&gt;.)

&lt;digit&gt;           ::= 0 | 1 | ... | 9 &lt;digits&gt;          ::= &lt;digit&gt; | &lt;digit&gt;&lt;digits&gt; &lt;number&gt;          ::= &lt;digits&gt; | &lt;digits&gt;.&lt;digits&gt; | &lt;digits&gt;. | .&lt;digits&gt; &lt;sign&gt;            ::= &#34;+&#34; | &#34;-&#34; &lt;signedNumber&gt;    ::= &lt;number&gt; | &lt;sign&gt;&lt;number&gt; &lt;suffix&gt;          ::= &lt;binarySI&gt; | &lt;decimalExponent&gt; | &lt;decimalSI&gt; &lt;binarySI&gt;        ::= Ki | Mi | Gi | Ti | Pi | Ei

   (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)

&lt;decimalSI&gt;       ::= m | &#34;&#34; | k | M | G | T | P | E

   (Note that 1024 = 1Ki but 1000 = 1k; I didn&#39;t choose the capitalization.)

&lt;decimalExponent&gt; ::= &#34;e&#34; &lt;signedNumber&gt; | &#34;E&#34; &lt;signedNumber&gt; ```

无论使用三种指数形式中的哪一种,任何 Quantity 都不能表示幅度大于 2^63-1 的数字,也不能超过 3 位小数。更大或更精确的数字将被截断或向上取整。(例如:0.1m 将向上取整为 1m。)如果将来需要更大或更小的数量,这可能会被扩展。

当 Quantity 从字符串解析时,它会记住其后缀类型,并在再次序列化时使用相同的类型。

在序列化之前,Quantity 将被置于 &#34;规范形式&#34;(canonical form)。这意味着指数/后缀将向上或向下调整(尾数相应增加或减少),使得:

- 不会丢失精度 - 不会输出小数位 - 指数(或后缀)尽可能大。

除非数字为负数,否则符号将被省略。

示例:

- 1.5 将被序列化为 &#34;1500m&#34; - 1.5Gi 将被序列化为 &#34;1536Mi&#34;

只要格式正确,非规范值仍可被解析,但会以其规范形式重新输出。(因此请始终使用规范形式,或者不要进行 diff。)

此格式旨在使不编写某种特殊处理代码就使用这些数字变得困难,希望以此促使实现者也使用定点实现。

apiVersion: resource

import "k8s.io/apimachinery/pkg/api/resource"

Quantity

Quantity 是数字的定点表示。它提供了方便的 JSON 和 YAML 编组/解组功能, 以及 String()AsInt64() 访问器。

序列化格式如下:

&lt;quantity&gt;        ::= &lt;signedNumber&gt;&lt;suffix&gt;

	(Note that &lt;suffix&gt; may be empty, from the &#34;&#34; case in &lt;decimalSI&gt;.)

&lt;digit&gt;           ::= 0 | 1 | ... | 9 &lt;digits&gt;          ::= &lt;digit&gt; | &lt;digit&gt;&lt;digits&gt; &lt;number&gt;          ::= &lt;digits&gt; | &lt;digits&gt;.&lt;digits&gt; | &lt;digits&gt;. | .&lt;digits&gt; &lt;sign&gt;            ::= &#34;+&#34; | &#34;-&#34; &lt;signedNumber&gt;    ::= &lt;number&gt; | &lt;sign&gt;&lt;number&gt; &lt;suffix&gt;          ::= &lt;binarySI&gt; | &lt;decimalExponent&gt; | &lt;decimalSI&gt; &lt;binarySI&gt;        ::= Ki | Mi | Gi | Ti | Pi | Ei

	(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)

&lt;decimalSI&gt;       ::= m | &#34;&#34; | k | M | G | T | P | E

	(Note that 1024 = 1Ki but 1000 = 1k; I didn&#39;t choose the capitalization.)

&lt;decimalExponent&gt; ::= &#34;e&#34; &lt;signedNumber&gt; | &#34;E&#34; &lt;signedNumber&gt;

无论使用三种指数形式中的哪一种,任何 Quantity 都不能表示幅度大于 2^63-1 的数字, 也不能超过 3 位小数。更大或更精确的数字将被截断或向上取整。 (例如:0.1m 将向上取整为 1m。) 如果将来需要更大或更小的数量,这可能会被扩展。

当 Quantity 从字符串解析时,它会记住其后缀类型,并在再次序列化时使用相同的类型。

在序列化之前,Quantity 将被置于"规范形式"(canonical form)。 这意味着指数/后缀将向上或向下调整(尾数相应增加或减少),使得:

  • 不会丢失精度
  • 不会输出小数位
  • 指数(或后缀)尽可能大。

除非数字为负数,否则符号将被省略。

示例:

  • 1.5 将被序列化为 "1500m"
  • 1.5Gi 将被序列化为 "1536Mi"

请注意,Quantity 永远不会在内部以浮点数表示。这正是此设计的全部意义所在。

只要格式正确,非规范值仍可被解析,但会以其规范形式重新输出。 (因此请始终使用规范形式,或者不要进行 diff。)

此格式旨在使不编写某种特殊处理代码就使用这些数字变得困难, 希望以此促使实现者也使用定点实现。


28 - ResourceRule

ResourceRule 是主体被允许对资源执行的操作列表。 该列表的顺序无关紧要,可能包含重复项,也可能不完整。

apiVersion: authorization.k8s.io/v1

import "k8s.io/api/authorization/v1"

ResourceRule

ResourceRule 是主体被允许对资源执行的操作列表。 该列表的顺序无关紧要,可能包含重复项,也可能不完整。


字段描述
apiGroups
string array
apiGroups 是包含相关资源的 API 组名称。 如果指定了多个 API 组,则针对其中任一 API 组内所列资源发起的任何操作请求都将被允许。 其中,"*" 表示所有。
resourceNames
string array
resourceNames 是一个可选的名称白名单,用于指定该规则适用的对象。 若该集合为空,则表示允许所有对象;"*" 表示所有对象。
resources
string array
resources 是此规则适用的资源列表。 "*" 表示指定 apiGroups 中的所有资源。"*/foo" 表示指定 apiGroups 中所有资源的子资源 "foo"。
verbs *
string array
verbs 是 Kubernetes 资源 API 动词的列表,例如: get、list、watch、create、update、delete、proxy。 其中 "*" 表示所有动词。

29 - RoleRef

RoleRef 包含指向所使用角色的信息。

apiVersion: rbac.authorization.k8s.io/v1

import "k8s.io/api/rbac/v1"

RoleRef

RoleRef 包含指向所使用角色的信息。


FieldDescription
apiGroup
string
APIGroup 是所引用资源所属的 API 组。
kind *
string
kind 是所引用资源的类型。
name *
string
name 是所引用资源的名称。

30 - RuleWithOperations

RuleWithOperations 是由 operations 和 resources 组成的元组。建议确保所有元组展开均有效。

apiVersion: admissionregistration.k8s.io/v1

import "k8s.io/api/admissionregistration/v1"

RuleWithOperations

RuleWithOperations 是由 operations 和 resources 组成的元组。建议确保所有元组展开均有效。


字段描述
apiGroups
string array
apiGroups 是资源所属的 API 组。'*' 代表所有组。如果包含 '*',则切片长度必须为 1。必填项。
apiVersions
string array
apiVersions 是资源所属的 API 版本。'*' 代表所有版本。如果包含 '*',则切片长度必须为 1。必填项。
operations
string array
operations 指定了准入钩子关注的操作类型,包括 CREATE、UPDATE、DELETE、CONNECT, 或者使用 `*` 来涵盖所有这些操作以及未来新增的准入操作。 如果使用了 `*`,则该切片的长度必须为 1。必填项。
resources
string array
resources 是此规则适用的资源列表。例如:'pods' 指 Pod 资源;'pods/log' 指 Pod 的 'log' 子资源;'*'' 指所有资源(但不包括子资源);'pods/*' 指 Pod 的所有子资源; '*/scale' 指所有 'scale' 子资源;`*/*` 指所有资源及其子资源。 如果使用了通配符,验证规则将确保各资源之间互不重叠。 根据所处的对象类型,某些情况下可能不允许使用子资源。此字段为必填项。
scope
string
scope 指定了此规则的适用范围。有效值为 "Cluster"、"Namespaced" 和 "*"。 "Cluster" 表示仅集群作用域(cluster-scoped)的资源匹配此规则; Namespace API 对象属于集群作用域资源。 "Namespaced" 表示仅命名空间作用域(namespaced)的资源匹配此规则。 "*" 表示无范围限制。子资源(subresources)的适用范围与其父资源相同。默认值为 "*"。

可能的枚举值:
- `"*"` 表示包含所有范围。
- `"Cluster"` 表示范围仅限于集群作用域对象。Namespace 对象属于集群作用域对象。
- `"Namespaced"` 表示范围仅限于命名空间作用域对象。

31 - ServerAddressByClientCIDR

ServerAddressByClientCIDR 帮助客户端根据其匹配的 clientCIDR,确定应使用的服务器地址。

apiVersion: meta/v1

import "k8s.io/apimachinery/pkg/apis/meta/v1"

ServerAddressByClientCIDR

ServerAddressByClientCIDR 帮助客户端根据其匹配的 clientCIDR,确定应使用的服务器地址。


FieldDescription
clientCIDR *
string
客户端可以匹配其 IP 地址以确定服务器地址的 CIDR。
serverAddress *
string
此服务器的地址,适用于符合上述 CIDR 范围的客户端。该地址可以是 hostname、hostname:port、IP 或 IP:port。

32 - ServiceReference

ServiceReference 持有对 Service.legacy.k8s.io 的引用。

apiVersion: admissionregistration.k8s.io/v1

import "k8s.io/api/admissionregistration/v1"

ServiceReference

ServiceReference 持有对 Service.legacy.k8s.io 的引用。


字段描述
name *
string
Service 的名称。必填。
namespace *
string
Service 的命名空间。必填。
path
string
服务的可选 URL 路径。在任何请求中都会发送此路径。
port
integer
服务上主机 Webhook 的端口。默认值为 443。`port` 必须是一个有效的端口号(1-65535,包括)。

33 - StatusCause

StatusCause 提供了关于 api.Status 失败的更多信息,包括遇到多个错误的情况。

apiVersion: meta/v1

import "k8s.io/apimachinery/pkg/apis/meta/v1"

StatusCause

StatusCause 提供了关于 api.Status 失败的更多信息,包括遇到多个错误的情况。


字段描述
field
string
导致此错误的资源字段名称(基于其 JSON 序列化形式)。 对于嵌套属性,可使用点号(dot notation)和后缀表示法(postfix notation)。 数组索引从 0 开始。若某字段存在多个错误,则该字段可能在错误原因列表中多次出现。 可选字段。示例: "name" 表示当前资源上的 "name" 字段; "items[0].name" 表示 "items" 数组中第一个元素里的 "name" 字段。
message
string
关于错误原因的人类可读描述。 该字段可按原样呈现给读者。
reason
string
错误原因的机器可读描述。如果该值为空,则无可用信息。

34 - StatusDetails

StatusDetails 是一组由服务器设置的附加属性,用于提供关于响应的额外信息。Status 对象的 Reason 字段定义了将设置哪些属性。客户端必须忽略那些与各属性定义类型不符的字段,并应假定任何属性都可能为空、无效或未定义。

apiVersion: meta/v1

import "k8s.io/apimachinery/pkg/apis/meta/v1"

StatusDetails

StatusDetails 是一组由服务器设置的附加属性,用于提供关于响应的额外信息。 Status 对象的 Reason 字段定义了将设置哪些属性。 客户端必须忽略那些与各属性定义类型不符的字段,并应假定任何属性都可能为空、无效或未定义。


字段描述
causes
StatusCause array
causes 数组包含与 StatusReason 故障相关的更多详细信息。 并非所有 StatusReason 都会提供详细的故障原因。
group
string
与 StatusReason 状态关联的资源的组属性。
kind
string
与 StatusReason 状态相关联的资源的 kind(类型)属性。在某些操作中, 该值可能与请求的资源 kind 不同。更多信息请参阅: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
name
string
与 StatusReason 状态关联的资源的名称属性。当资源只有一个名称时。
retryAfterSeconds
integer
如果指定,操作在指定的秒数后应重试。 一些错误可能指示客户端必须采取替代操作,对于这些错误,此字段可能指示在采取替代操作之前等待的秒数。
uid
string
与 StatusReason 状态关联的资源的唯一标识符(UID)。当资源只有一个时。

35 - Subject

Subject 包含对角色绑定所适用的对象或用户身份的引用。 它可以是直接的 API 对象引用,也可以是针对非对象(如用户和组名称)的值。

apiVersion: rbac.authorization.k8s.io/v1

import "k8s.io/api/rbac/v1"

Subject

Subject 包含对角色绑定所适用的对象或用户身份的引用。 它可以是直接的 API 对象引用,也可以是针对非对象(如用户和组名称)的值。


字段描述
apiGroup
string
apiGroup 包含所引用主体的 API 组。 对于 ServiceAccount 主体,默认为 ""; 对于 User 和 Group 主体,默认为 "rbac.authorization.k8s.io"。
kind *
string
所引用对象的类型。该 API 组定义的取值为 "User"、"Group" 和 "ServiceAccount"。如果授权器(Authorizer)无法识别该类型值, 则应报错。
name *
string
所引用对象的名称。
namespace
string
被引用对象的命名空间。如果对象类型属于非命名空间类型(例如 "User" 或 "Group")且该值非空,则授权器应报错。

36 - SubjectRulesReviewStatus

SubjectRulesReviewStatus 包含了规则检查的结果。 根据服务器配置的授权器集合以及评估过程中出现的任何错误,该检查结果可能是不完整的。 由于授权规则是累加的,因此如果某条规则出现在列表中, 即便该列表不完整,也可以确信主体拥有相应的权限。

apiVersion: authorization.k8s.io/v1

import "k8s.io/api/authorization/v1"

SubjectRulesReviewStatus

SubjectRulesReviewStatus 包含了规则检查的结果。 根据服务器配置的授权器集合以及评估过程中出现的任何错误,该检查结果可能是不完整的。 由于授权规则是累加的,因此如果某条规则出现在列表中, 即便该列表不完整,也可以确信主体拥有相应的权限。


字段描述
evaluationError
string
evaluationError 可能会与“规则”(Rules)一同出现。 它表示在规则评估过程中发生了错误(例如,某个授权器不支持规则评估),并提示 ResourceRules 和/或 NonResourceRules 可能是不完整的。
incomplete *
boolean
当本次调用返回的规则不完整时,incomplete 字段为 true。 这种情况最常见于授权器(例如外部授权器)不支持规则评估的场景。
nonResourceRules *
NonResourceRule array
nonResourceRules 是主体被允许对非资源执行的操作列表。 该列表的顺序无关紧要,可能包含重复项,也可能不完整。
resourceRules *
ResourceRule array
resourceRules 是主体被允许对资源执行的操作列表。 该列表的顺序无关紧要,可能包含重复项,也可能不完整。

37 - Time

Time 类型是对 time.Time 的封装,支持正确地序列化为 YAML 和 JSON 格式。该类型还针对 time 包提供的许多工厂方法提供了相应的封装版本。

apiVersion: meta/v1

import "k8s.io/apimachinery/pkg/apis/meta/v1"

Time

Time 类型是对 time.Time 的封装,支持正确地序列化为 YAML 和 JSON 格式。 该类型还针对 time 包提供的许多工厂方法提供了相应的封装版本。


38 - Toleration

该容忍度所关联的 Pod,能够容忍任何与三元组 <key, value, effect> 相匹配的污点(taint),匹配依据由 <operator> 指定。

apiVersion: v1

import "k8s.io/api/core/v1"

Toleration

该容忍度所关联的 Pod,能够容忍任何与三元组 <key, value, effect> 相匹配的污点(taint),匹配依据由 <operator> 指定。


字段描述
effect
string
effect 指定要匹配的污点效应(taint effect)。留空表示匹配所有污点效应。 若指定该字段,允许的值包括 NoSchedule、PreferNoSchedule 和 NoExecute。

可能的枚举值:
  - `"NoExecute"` 驱逐所有无法容忍该污点且正在运行的 Pod。
    该策略目前由 NodeController 强制执行。<br/>
  - `"NoSchedule"` 除非 Pod 能够容忍该污点,否则不允许将新的 Pod 调度到该节点上;
    但允许所有绕过调度器直接提交给 kubelet 的 Pod 启动,
    也允许所有已在运行的 Pod 继续运行。该策略由调度器强制执行。<br/>
  - `"PreferNoSchedule"` 类似于 NoSchedule,但调度器会尽量避免将新的 Pod
     调度到该节点上,而不是完全禁止调度。该策略由调度器强制执行。
  </td>
</tr>
<tr>
  <td><code>key</code><br/><em>string</em></td>
  <td>
  <!--
  Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  -->
  key 是该容忍度所适用的污点键(taint key)。若为空,则表示匹配所有污点键。
  如果 key 为空,operator 必须为 Exists;这种组合意味着匹配所有键和所有值。
  </td>
</tr>
<tr>
  <td><code>operator</code><br/><em>string</em></td>
  <td>
  <!--
  Operator represents a key's relationship to the value. Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).<br/><br/>Possible enum values:<br/> - `"Equal"`<br/> - `"Exists"`<br/> - `"Gt"`<br/> - `"Lt"`
  -->
  operator 表示键(key)与值(value)之间的关系。
  有效的运算符包括 Exists、Equal、Lt 和 Gt,默认为 Equal。
  Exists 相当于值的通配符,使得 Pod 能够容忍特定类别下的所有污点。
  Lt 和 Gt 执行数值比较(需要启用 TaintTolerationComparisonOperators 特性门控)。<br/><br/>
  可能的枚举值:<br/>
  
    - `"Equal"`<br/>
    - `"Exists"`<br/>
    - `"Gt"`<br/>
    - `"Lt"`
  </td>
</tr>
<tr>
  <td><code>tolerationSeconds</code><br/><em>integer</em></td>
  <td>
  <!--
  TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  -->
  tolerationSeconds 表示容忍(其 effect 必须为 NoExecute,否则该字段将被忽略)针对污点生效的时长。
  默认情况下该字段未设置,意味着永久容忍该污点(不进行驱逐)。系统会将 0 或负值视为 0(即立即驱逐)。
  </td>
</tr>
<tr>
  <td><code>value</code><br/><em>string</em></td>
  <td>
  <!--
  Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  -->
  value 是容忍度所匹配的污点值(taint value)。如果运算符(operator)为
  Exists,则该值应为空;否则,它应为一个普通字符串。
  </td>
</tr>

39 - TypedLocalObjectReference

TypedLocalObjectReference 包含足够的信息,使你能够在同一命名空间内定位所引用的类型化对象。

apiVersion: v1

import "k8s.io/api/core/v1"

TypedLocalObjectReference

TypedLocalObjectReference 包含足够的信息,使你能够在同一命名空间内定位所引用的类型化对象。


字段描述
apiGroup
string
apiGroup 是所引用资源所属的 API 组。如果未指定 apiGroup,则指定的 kind 必须属于核心 API 组。对于任何其他第三方类型,必须指定 apiGroup。
kind *
string
kind 是所引用资源的类型。
name *
string
name 是所引用资源的名称。

40 - TypedLocalObjectReference

TypedLocalObjectReference 允许引用同一命名空间内的类型化对象。

apiVersion: scheduling.k8s.io/v1alpha2

import "k8s.io/api/scheduling/v1alpha2"

TypedLocalObjectReference

TypedLocalObjectReference 允许引用同一命名空间内的类型化对象。


字段描述
apiGroup
string
apiGroup 是所引用资源所属的 API 组。如果 apiGroup 为空,则指定的 kind 必须属于核心 API 组。 对于任何其他第三方类型,必须设置 apiGroup。该值必须符合 DNS 子域名的格式要求。
kind *
string
kind 是所引用资源的类型。它必须是一个路径段名称。
name *
string
name 是所引用资源的名称。它必须是一个路径段名称。

41 - UserInfo

UserInfo 包含实现 user.Info 接口所需的用户信息。

apiVersion: authentication.k8s.io/v1

import "k8s.io/api/authentication/v1"

UserInfo

UserInfo 包含实现 user.Info 接口所需的用户信息。


字段描述
extra
object
extra 是由认证器提供的任何附加信息。
groups
string array
groups 是该用户所属群组的名称。
uid
string
uid 是一个用于在不同时间段内唯一标识该用户的数值。 如果该用户被删除,随后又添加了同名用户,这两个用户将拥有不同的 UID。
username
string
username 是在所有活跃用户中唯一标识该用户的名称。

42 - Variable

Variable 是指用于组合的变量定义;Variable 被定义为一种具名表达式。

apiVersion: admissionregistration.k8s.io/v1

import "k8s.io/api/admissionregistration/v1"

Variable

Variable 是指用于组合的变量定义;Variable 被定义为一种具名表达式。


字段描述
expression *
string
expression 是将被求值并作为变量值的表达式。 该 CEL 表达式可以访问与“验证”(Validation)中的 CEL 表达式相同的标识符。
name *
string
name 是变量的名称。该名称必须是合法的 CEL 标识符,且在所有变量中必须唯一。 该变量可在其他表达式中通过 `variables` 进行访问; 例如,如果名称为 "foo",则该变量可通过 `variables.foo` 访问。

43 - WatchEvent

event 表示针对受监控资源发生的单个事件。

apiVersion: meta/v1

import "k8s.io/apimachinery/pkg/apis/meta/v1"

WatchEvent

event 表示针对受监控资源发生的单个事件。


字段描述
object *
object 为:* 若类型为“新增”或“修改”:对象的新状态。 * 若类型为“删除”:对象被删除前的状态。 * 若类型为“错误”:建议使用 Status(状态);视上下文而定,其他类型也可能适用。
type *
string