Definitions
- 1: APIGroup
- 2: APIResource
- 3: APIVersions
- 4: Condition
- 5: DeleteOptions
- 6: EventSource
- 7: FieldSelectorRequirement
- 8: FieldsV1
- 9: GroupResource
- 10: GroupVersionForDiscovery
- 11: LabelSelector
- 12: LabelSelectorRequirement
- 13: ManagedFieldsEntry
- 14: MatchCondition
- 15: MicroTime
- 16: NamedRuleWithOperations
- 17: NonResourceAttributes
- 18: NonResourceRule
- 19: ObjectMeta
- 20: ObjectReference
- 21: OwnerReference
- 22: ParamKind
- 23: ParamRef
- 24: Patch
- 25: PolicyRule
- 26: Preconditions
- 27: Quantity
- 28: ResourceRule
- 29: RoleRef
- 30: RuleWithOperations
- 31: ServerAddressByClientCIDR
- 32: ServiceReference
- 33: StatusCause
- 34: StatusDetails
- 35: Subject
- 36: SubjectRulesReviewStatus
- 37: Time
- 38: Toleration
- 39: TypedLocalObjectReference
- 40: TypedLocalObjectReference
- 41: UserInfo
- 42: Variable
- 43: WatchEvent
1 - APIGroup
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
APIGroup
APIGroup 包含组的名称、支持的版本以及首选版本。
| 字段 | 描述 |
|---|---|
apiVersionstring | apiVersion 定义了对象这种表示形式的带版本模式。服务器应将已识别的模式转换为最新的内部值, 并可以拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
kindstring | APIVerver 定义了对象这种表示形式的带版本模式。服务器应将已识别的模式转换为最新的内部值, 并可以拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
name *string | name 是该组的名称。 |
preferredVersionGroupVersionForDiscovery | preferredVersion 是 API 服务器首选的版本,通常也是存储版本。 |
serverAddressByClientCIDRsServerAddressByClientCIDR 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。
| 字段 | 描述 |
|---|---|
apiVersionstring | apiVersion 定义了对象这种表示形式的带版本模式。服务器应将已识别的模式转换为最新的内部值, 并可以拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
groups *APIGroup array | groups 是 APIGroup 的列表。 |
kindstring | kind 是一个字符串值,表示对象代表的 REST 资源。 服务器可能会根据客户端提交的请求端点来推断此值,不能被更新。驼峰命名法。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
2 - APIResource
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
APIResource
APIResource 指定了资源的名称以及该资源是否具有命名空间作用域。
| Field | Description |
|---|---|
categoriesstring array | categories 是该资源所属的分组资源列表(例如 “all”)。 |
groupstring | group 是该资源的首选组。若为空,则表示所属资源列表的组。对于子资源,该值可能不同,例如:"Scale"。 |
kind *string | kind 是该资源的类型(例如 “Foo” 是资源 “foo” 的类型)。 |
name *string | name 是该资源的复数名称。 |
namespaced *boolean | namespaced 表示该资源是否具有命名空间作用域。 |
shortNamesstring array | shortNames 是该资源建议的短名称列表。 |
singularName *string | singularName 是资源的单数名称。这允许客户端以不透明的方式处理复数和单数形式。 singularName 更适合用于报告单个条目的状态,在 `kubectl` CLI 界面下单数和复数形式都是被允许的。 |
storageVersionHashstring | 存储版本(Storage Version)的哈希值,即该资源在写入数据存储时所转换到的版本。 该值必须被客户端视为不透明;仅可对该值进行相等性比较。 这是一项 Alpha 特性,未来可能发生变化或被移除。只有启用了 `StorageVersionHash` 特性门控后, apiserver 才会填充此字段。即使该字段升级为正式发布(GA),它也将保持可选。 |
verbs *string array | verbs 是该资源支持的 kube 动词列表(包括 get、list、watch、create、update、patch、delete、deletecollection 和 proxy)。 |
versionstring | version 是该资源的首选版本。若为空,则表示所属资源列表的版本。 对于子资源,该值可能不同,例如:"v1"(在核心资源的 v1beta1 版本中)。 |
APIResourceList
APIResourceList 是 APIResource 的列表,用于公开特定组(group)和版本(version)下支持的资源名称, 以及该资源是否属于命名空间(namespaced)范围。
| Field | Description |
|---|---|
apiVersionstring | APIVersion 定义了对象这种表示形式的带版本模式。 服务器应将已识别的模式转换为最新的内部值,并可以拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
groupVersion *string | groupVersion 是该 APIResourceList 所属的组和版本。 |
kindstring | kind 是该对象表示的 REST 资源的字符串值。 服务器可能根据客户端提交的请求端点推断出此值,不能更新。 此值为驼峰命名法。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
resources *APIResource array | resources 包含资源的名称以及它们是否属于命名空间范围。 |
3 - APIVersions
/api(即旧版 v1 API 的根路径)处的 API。apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
APIVersions
apiVersions 列出了可用的版本,以便客户端能够发现位于
/api(即旧版 v1 API 的根路径)处的 API。
| 字段 | 描述 |
|---|---|
apiVersionstring | apiVersions 定义了该对象表示形式的版本化模式(schema)。 服务器应将已识别的模式转换为最新的内部值,并可拒绝无法识别的值。 更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
kindstring | 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
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
Condition
Condition 包含了该 API 资源当前状态某一方面的详细信息。
| 字段 | 描述 |
|---|---|
lastTransitionTime *Time | lastTransitionTime 是该条件从一种状况转换为另一种状况的最后时间。 理想情况下,这应对应于底层状况发生变更的时间;若无法确定该时间,则使用 API 字段发生变更的时间也是可以接受的。 |
message *string | message 是一个人类可读的消息,用于说明有关该转换的详细信息。该消息可以为空字符串。 |
observedGenerationinteger | 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
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
DeleteOptions
删除 API 对象时,可以指定 DeleteOptions。
| 字段 | 描述 |
|---|---|
apiVersionstring | apiVersion 定义了该对象表示形式的版本化模式(schema)。 服务器应将已识别的模式转换为最新的内部值,并可拒绝无法识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
dryRunstring array | 如果存在,则表示不应保存修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。 有效值包括:- All:将处理所有 dryRun 阶段。 |
gracePeriodSecondsinteger | 对象被删除前需等待的时长(以秒为单位)。该值必须是非负整数;值为 0 表示立即删除。 若该值为 nil,则使用指定类型的默认宽限期。未指定时,默认采用针对该对象的特定值;值为 0 表示立即删除。 |
ignoreStoreReadErrorWithClusterBreakingPotentialboolean | 如果设置为 true,当正常的删除流程因“对象损坏”错误而失败时,系统将触发该资源的“不安全删除”(unsafe deletion)。 若资源因以下原因无法从底层存储成功获取,则被视为损坏: a) 数据无法转换(例如解密失败),或 b) 无法解码为对象。注意:不安全删除会忽略终结器(finalizer)约束,跳过前置条件检查,并直接从存储中移除该对象。 警告:如果被不安全删除的资源所关联的工作负载依赖于正常的删除流程,此操作可能会导致集群故障。 请务必在充分了解操作后果的情况下使用。默认值为 false,用户必须明确启用该选项。 |
kindstring | kind 是一个字符串值,用于标识该对象所代表的 REST 资源。服务器可以根据客户端提交请求的端点推断出该值。 该字段不可更新。采用驼峰命名法(CamelCase)。更多信息请参阅: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
orphanDependentsboolean | 已弃用:请使用 PropagationPolicy,该字段将在 1.7 版本中弃用。用于指定是否将从属对象置为孤立状态。 若设为 true 或 false,则会将 "orphan" 终结器(finalizer)添加至对象的终结器列表或从中移除。 此字段与 PropagationPolicy 仅可设置其一,不可同时设置。 |
preconditionsPreconditions | 必须在执行删除操作前满足此条件。如果无法满足,将返回 409 Conflict 状态码。 |
propagationPolicystring | 决定是否以及如何执行垃圾回收。此字段与 `OrphanDependents` 字段只能设置其中之一, 不能同时设置。默认策略取决于 `metadata.finalizers` 中现有的终结器(finalizer)设置以及该资源特定的默认策略。 可选值包括:'Orphan' —— 将从属资源设为孤儿(即保留从属资源);'Background' —— 允许垃圾回收器在后台删除从属资源; 'Foreground' —— 一种级联策略,在前台删除所有从属资源。 |
6 - EventSource
apiVersion: v1
import "k8s.io/api/core/v1"
EventSource
EventSource 包含有关事件的信息。
| 字段 | 描述 |
|---|---|
componentstring | 生成该事件的组件。 |
hoststring | 生成该事件的节点名称。 |
7 - FieldSelectorRequirement
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。 运算符列表可能会在未来扩展。 |
valuesstring 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
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
GroupResource
GroupResource 指定了 API 组和资源,但不强制指定版本。这在查找阶段很有用,因为部分类型可能无效。
| 字段 | 描述 |
|---|---|
group *string | |
resource *string |
10 - GroupVersionForDiscovery
group/version 和 version 字符串。它被定义为结构体以保持可扩展性。apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
GroupVersionForDiscovery
GroupVersion 包含版本号的 group/version 和 version 字符串。它被定义为结构体以保持可扩展性。
| 字段 | 描述 |
|---|---|
groupVersion *string | groupVersion 指定了 API 组和版本,格式为 "group/version"。 |
version *string | version 以 "version" 的格式指定版本。这样做是为了避免客户端需要拆分 GroupVersion 的麻烦。 |
11 - LabelSelector
matchLabels 和 matchExpressions 的结果会进行“与”(AND)运算。空的标签选择器匹配所有对象;为 null 的标签选择器不匹配任何对象。apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
LabelSelector
标签选择器是对一组资源进行的标签查询。matchLabels 和 matchExpressions 的结果会进行“与”(AND)运算。
空的标签选择器匹配所有对象;为 null 的标签选择器不匹配任何对象。
| 字段 | 描述 |
|---|---|
matchExpressionsLabelSelectorRequirement array | matchExpressions 是一组标签选择器要求。这些要求之间是“与”(AND)的关系。 |
matchLabelsobject | 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。 |
valuesstring array | values 是一个字符串值数组。如果运算符为 In 或 NotIn,则 values 数组不能为空;如果运算符为 Exists 或 DoesNotExist,则 values 数组必须为空。在执行策略性合并补丁(strategic merge patch)操作时,该数组会被替换。 |
13 - ManagedFieldsEntry
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
ManagedFieldsEntry
ManagedFieldsEntry 包含工作流 ID、字段集(FieldSet)以及该字段集所适用的资源的组版本(group version)。
| 字段 | 描述 |
|---|---|
apiVersionstring | apiVersion 定义了该字段集所适用的资源版本。其格式为 "group/version",与顶层的 apiVersion 字段相同。 必须追踪字段集的版本,因为该字段集无法自动转换。 |
fieldsTypestring | fieldsType 是用于区分不同字段格式与版本的标识符。目前仅有一种可能的取值:"FieldsV1"。 |
fieldsV1FieldsV1 | fieldsV1 包含 "FieldsV1" 类型中所述的首个 JSON 版本格式。 |
managerstring | manager 是管理这些字段的工作流的标识符。 |
operationstring | operation 是导致创建此 ManagedFieldsEntry 的操作类型。该字段仅有的有效值为 "Apply" 和 "Update"。 |
subresourcestring | subresource 是用于更新该对象的子资源名称;如果对象是通过主资源更新的,则该字段为空字符串。 该字段的值用于区分不同的管理器(manager),即使它们使用相同的名称。例如,使用相同管理器名称时,状态更新将与常规更新区分开来。 请注意,apiVersion 字段与 subresource 字段无关,它始终对应于主资源的版本。 |
timeTime | time 字段记录了 ManagedFields 条目添加时的时间戳。如果新增了字段,或者管理器修改了其所管辖字段的值或移除了某个字段, 该时间戳也会随之更新;但如果某个字段因被另一位管理器接管而从条目中移除,该时间戳则不会更新。 |
14 - MatchCondition
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
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
MicroTime
MicroTime 是具有微秒级精度的 Time 版本。
16 - NamedRuleWithOperations
apiVersion: admissionregistration.k8s.io/v1
import "k8s.io/api/admissionregistration/v1"
NamedRuleWithOperations
NamedRuleWithOperations 是由 Operations 以及包含资源名称 ResourceNames 的资源 Resources 组成的元组。
| 字段 | 描述 |
|---|---|
apiGroupsstring array | apiGroups 是资源所属的 API 组。'*' 代表所有组。如果包含 '*',则切片长度必须为 1。必填项。 |
apiVersionsstring array | apiVersions 是资源所属的 API 版本。'*' 代表所有版本。如果包含 '*',则切片长度必须为 1。必填项。 |
operationsstring array | operations 指定了准入钩子(admission hook)关注的操作类型,包括 CREATE、UPDATE、DELETE、CONNECT, 或者使用 `*` 来涵盖所有这些操作以及未来新增的准入操作。如果使用了 `*`,则该切片的长度必须为 1。必填项。 |
resourceNamesstring array | resourceNames 是一个可选的名称白名单,用于指定该规则适用的对象;若该集合为空,则表示允许所有对象。 |
resourcesstring array | resources 是此规则适用的资源列表。例如:`pods` 指 Pod 资源;`pods/log` 指 Pod 的 `log` 子资源; `*` 指所有资源(但不包括子资源);`pods/*` 指 Pod 的所有子资源;`*/scale` 指所有 `scale` 子资源; `*/*` 指所有资源及其子资源。如果使用了通配符,验证规则将确保各资源之间互不重叠。根据所处的对象类型, 某些情况下可能不允许使用子资源。此字段为必填项。 |
scopestring | scope 指定了此规则的适用范围。有效值为 "Cluster"、"Namespaced" 和 "*"。
"Cluster" 表示仅集群作用域(cluster-scoped)的资源匹配此规则;Namespace API 对象属于集群作用域资源。
"Namespaced" 表示仅命名空间作用域(namespaced)的资源匹配此规则。
"*" 表示无范围限制。子资源(subresources)的适用范围与其父资源相同。默认值为 "*"。 可能的枚举值: - `"*"` 表示包含所有范围。 - `"Cluster"` 表示范围仅限于集群作用域对象。Namespace 对象属于集群作用域对象。 - `"Namespaced"` 表示范围仅限于命名空间作用域对象。 |
17 - NonResourceAttributes
apiVersion: authorization.k8s.io/v1
import "k8s.io/api/authorization/v1"
NonResourceAttributes
NonResourceAttributes 包含了可供授权器(Authorizer)接口用于非资源请求的授权属性。
| 字段 | 描述 |
|---|---|
pathstring | path 是请求的 URL 路径 |
verbstring | verb 是标准的 HTTP 动词 |
18 - NonResourceRule
apiVersion: authorization.k8s.io/v1
import "k8s.io/api/authorization/v1"
NonResourceRule
NonResourceRule 包含描述非资源规则的信息。
| 字段 | 描述 |
|---|---|
nonResourceURLsstring array | nonResourceURLs 是一组用户应有权访问的部分 URL。允许使用 "*",但仅限于作为路径的完整末尾部分;"*" 表示所有动词。 |
verbs *string array | verbs 是 Kubernetes 非资源 API 动词的列表,例如:get、post、put、delete、patch、head、options。其中 "*" 表示所有动词。 |
19 - ObjectMeta
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
ObjectMeta
ObjectMeta 是所有持久化资源(包括用户必须创建的所有对象)都必须具备的元数据。
| 字段 | 描述 |
|---|---|
annotationsobject | annotations(注解)是随资源一起存储的非结构化键值对映射,可由外部工具设置,用于存储和检索任意元数据。 它们不可查询,且在修改对象时应予以保留。更多信息: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/annotations |
creationTimestampTime | creationTimestamp 是一个时间戳,表示该对象创建时的服务器时间。不保证在不同操作之间遵循 “happens-before”(先行发生)顺序。客户端不可设置此值。该值采用 RFC3339 格式,并以 UTC 时间表示。由系统自动填充。只读。对于列表类型,该值为 null。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata |
deletionGracePeriodSecondsinteger | 该对象在从系统中移除前允许进行优雅终止的秒数。仅在设置了 deletionTimestamp 时才会设置此字段。该值只能被缩短。只读。 |
deletionTimestampTime | 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 |
finalizersstring array patch strategy: merge | 在对象从注册表中删除之前,该列表必须为空。列表中的每一项都是一个标识符,指向负责将该项从列表中移除的组件。 如果对象的 deletionTimestamp(删除时间戳)非空,则该列表中的项只能被移除。 终结器(finalizers)的处理和移除顺序不固定;之所以不强制规定顺序,是因为强制排序会带来终结器处理过程陷入停滞(stuck)的重大风险。 finalizers 是一个共享字段,任何拥有相应权限的参与者(actor)都可以对其进行重新排序。 如果按顺序处理终结器列表,可能会出现这样一种情况:负责列表中第一个终结器的组件, 正在等待由负责列表中后续终结器的组件所产生的信号(如字段值、外部系统信号或其他信号),从而导致死锁。 若不强制规定顺序,终结器之间便可自由安排执行次序,且不会因列表顺序的变动而受到影响。 |
generateNamestring | generateName 是一个可选的前缀,仅在未提供 Name 字段时由服务器用于生成唯一名称。 如果使用了该字段,返回给客户端的名称将与传入的名称不同;该值会与一个唯一后缀组合使用。 所提供的值遵循与 Name 字段相同的验证规则,且可能会因服务器端确保唯一性所需的后缀长度而被截断。 如果指定了该字段且生成的名称已存在,服务器将返回 409 状态码。仅在未指定 Name 时生效。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency |
generationinteger | 表示目标状态特定版本的序列号。由系统填充。只读。 |
labelsobject | 用于组织和分类(限定范围及筛选)对象的字符串键值对映射。可与 ReplicationController 和 Service 的选择器相匹配。更多信息: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/labels |
managedFieldsManagedFieldsEntry array | managedFields 将工作流 ID(workflow-id)和版本映射到由该工作流管理的字段集合。 这主要用于内部管理,用户通常无需设置或理解该字段。工作流名称可以是用户名、控制器名称,或者是诸如 “ci-cd” 之类的特定应用路径名称。其中的字段集合始终采用该工作流在修改对象时所使用的版本。 |
namestring | name 在命名空间内必须唯一。创建资源时必须指定名称,尽管某些资源允许客户端请求自动生成合适的名称。 名称主要用于确保创建操作的幂等性以及配置定义。名称不可更新。更多信息: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/names#names |
namespacestring | namespace 定义了一个作用域,在该作用域内每个名称必须是唯一的。空的命名空间等同于 "default" 命名空间,但 "default" 是其标准表示形式。并非所有对象都必须归属于某个命名空间——对于此类对象,该字段的值为空。 该值必须符合 DNS_LABEL 规范,且不可更新。更多信息请参阅: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/namespaces |
ownerReferencesOwnerReference array patch strategy: merge on key uid | 该对象所依赖的对象列表。如果列表中的所有对象均已被删除,则该对象将被垃圾回收。 如果该对象由控制器管理,则该列表中会包含指向该控制器的条目,且该条目的 controller 字段会被设为 true。 管理该对象的控制器只能有一个。 |
resourceVersionstring | 这是一个代表该对象内部版本的不透明值,客户端可利用它来判断对象是否发生了变更。 该值可用于乐观并发控制、变更检测以及针对单个或一组资源的“监视”(watch)操作。 客户端必须将这些值视为不透明数据,并原样传回服务器。它们可能仅对特定资源或资源集合有效。由系统自动填充。只读。 客户端必须将该值视为不透明数据。更多信息请参阅: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency |
selfLinkstring | 已弃用:selfLink 是一个旧版只读字段,系统不再对其进行填充。 |
uidstring | UID 是该对象在时间和空间上的唯一标识符。它通常由服务器在资源成功创建时生成,且在执行 PUT 操作时不允许更改。 由系统自动填充。只读。更多信息:https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/names#uids |
20 - ObjectReference
apiVersion: v1
import "k8s.io/api/core/v1"
ObjectReference
ObjectReference 包含足够的信息,使你能够检查或修改所引用的对象。
| 字段 | 描述 |
|---|---|
apiVersionstring | 引用对象的 API 版本。 |
fieldPathstring | 如果引用的是对象的某个部分而非整个对象,该字符串应包含有效的 JSON 或 Go 语言风格的字段访问语句, 例如 `desiredState.manifest.containers[2]`。例如,若对象引用指向 Pod 中的某个容器, 其值可能为 `"spec.containers{name}"`(其中 `name` 指代触发该事件的容器名称), 或者若未指定容器名称,则为 `"spec.containers[2]"`(指该 Pod 中索引为 2 的容器)。 采用这种语法,仅仅是为了提供一种明确的方式来引用对象的特定部分。 |
kindstring | 引用对象的类型。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
namestring | 引用对象的名称。更多信息: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/names/#names |
namespacestring | 引用对象的命名空间。更多信息: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/namespaces/ |
resourceVersionstring | 该引用所指向的具体 resourceVersion(如有)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency |
uidstring | 引用对象的唯一标识符(UID)。更多信息: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/names/#uids |
21 - OwnerReference
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
OwnerReference
OwnerReference 包含足以识别所属对象的信息。 所属对象必须与从属对象位于同一命名空间,或者是集群作用域对象, 因此其中不包含命名空间字段。
| 字段 | 描述 |
|---|---|
apiVersion *string | 被引用对象的 API 版本。 |
blockOwnerDeletionboolean | 如果该值为 true,且所属对象(owner)拥有 "foregroundDeletion" 终结器(finalizer),则在移除此引用之前,该所属对象无法从键值存储中被删除。 关于垃圾回收器如何与该字段交互并强制执行前台删除,请参阅 https://kubernetes.io/zh-cn/docs/concepts/architecture/garbage-collection/#foreground-deletion。 默认值为 false。设置此字段需要用户拥有针对该所属对象的 "delete" 权限,否则将返回 422(Unprocessable Entity)错误。 |
controllerboolean | 如果为 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
apiVersion: admissionregistration.k8s.io/v1
import "k8s.io/api/admissionregistration/v1"
ParamKind
ParamKind 是由 Group、Kind 和 Version 组成的元组。
| 字段 | 描述 |
|---|---|
apiVersionstring | apiVersion 是资源所属的 API 组版本,格式为 "group/version"。必填项。 |
kindstring | kind 是资源所属的 API 类型。必填。 |
23 - ParamRef
apiVersion: admissionregistration.k8s.io/v1
import "k8s.io/api/admissionregistration/v1"
ParamRef
ParamRef 描述了如何定位那些将用作输入参数的参数,这些参数用于策略绑定所应用的规则表达式。
| 字段 | 描述 |
|---|---|
namestring | `name` 是所引用资源的名称。必须设置 `name` 或 `selector` 中的一项, 但两者互斥;若设置了其中一项,则另一项必须留空。 若要配置适用于所有准入请求的单一参数, 可设置 `name` 字段并将 `selector` 留空; 若 `paramKind` 属于命名空间作用域(namespace-scoped),则还需指定命名空间。 |
namespacestring | `namespace` 字段指定了所引用资源所在的命名空间, 用于将参数(params)的查找范围限定在特定命名空间内。 该字段适用于 `name` 和 `selector` 字段。 若要在策略中使用特定命名空间的参数,可将 `paramKind` 指定为命名空间作用域(namespace-scoped)的资源,并将此字段留空。 - 如果 `paramKind` 为集群作用域(cluster-scoped),则不得设置此字段; 设置该字段将导致配置错误。 - 如果 `paramKind` 为命名空间作用域,且此字段留空, 系统将使用待准入评估对象所属的命名空间。 请注意,若此字段留空,绑定(binding)不得匹配任何集群作用域的资源,否则将导致错误。 |
parameterNotFoundActionstring | `parameterNotFoundAction` 用于控制当资源存在且名称或选择器有效, 但绑定未匹配到任何参数时的行为。如果该值设置为 `Allow`, 则未匹配到参数的情况将被视为绑定验证成功; 如果设置为 `Deny`,则未匹配到参数的情况将触发该策略的 `failurePolicy`。 可选值为 `Allow` 或 `Deny`(必填)。 |
selectorLabelSelector | 可以使用 `selector` 根据标签匹配多个 `param` 对象。若指定 `selector: {}`, 则会匹配 `ParamKind` 对应的所有资源。如果匹配到多个 `param` 对象, 系统将针对每个对象评估策略表达式,并将评估结果进行“与”(AND)运算。 `name` 和 `selector` 必须设置其中之一,但两者互斥; 若设置了其中一个,则另一个必须留空。 |
24 - Patch
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
Patch
此 Patch 旨在为 Kubernetes PATCH 请求体提供具体的名称和类型。
25 - PolicyRule
apiVersion: rbac.authorization.k8s.io/v1
import "k8s.io/api/rbac/v1"
PolicyRule
PolicyRule 包含描述策略规则的信息,但不包含关于该规则适用于哪些对象或适用于哪个命名空间的信息。
| 字段 | 描述 |
|---|---|
apiGroupsstring array | apiGroups 是包含相关资源的 API 组的名称。如果指定了多个 API 组, 则针对其中任一 API 组内所列资源发起的任何操作请求都将被允许。 "" 表示核心 API 组,"*" 表示所有 API 组。 |
nonResourceURLsstring array | nonResourceURLs 是一组用户应有权访问的部分 URL。 允许使用通配符 "*",但仅限于路径的最后一段。由于非资源 URL 不区分命名空间, 该字段仅适用于由 ClusterRoleBinding 引用的 ClusterRole。 规则既可以针对 API 资源(如 "pods" 或 "secrets"),也可以针对非资源 URL 路径(如 "/api"), 但不能同时针对两者。 |
resourceNamesstring array | resourceNames 是一个可选的名称白名单,用于指定该规则适用的对象; 若该集合为空,则表示允许所有对象。 |
resourcesstring array | resources 是该规则适用的资源列表。"*" 代表所有资源。 |
verbs *string array | verbs 是一个动词列表,适用于该规则中包含的所有 ResourceKind。 其中,"*" 代表所有动词。 |
26 - Preconditions
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
Preconditions
在执行某项操作(更新、删除等)之前,必须满足 Preconditions。
| 字段 | 描述 |
|---|---|
resourceVersionstring | 指定目标 resourceVersion |
uidstring | 指定目标 UID。 |
27 - Quantity
Quantity 是数字的定点表示。它提供了方便的 JSON 和 YAML 编组/解组功能,以及 String() 和 AsInt64() 访问器。
序列化格式如下:
(Note that <suffix> may be empty, from the "" case in <decimalSI>.)
<digit> ::= 0 | 1 | ... | 9 <digits> ::= <digit> | <digit><digits> <number> ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign> ::= "+" | "-" <signedNumber> ::= <number> | <sign><number> <suffix> ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI> ::= Ki | Mi | Gi | Ti | Pi | Ei
(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
<decimalSI> ::= m | "" | k | M | G | T | P | E
(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
<decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
无论使用三种指数形式中的哪一种,任何 Quantity 都不能表示幅度大于 2^63-1 的数字,也不能超过 3 位小数。更大或更精确的数字将被截断或向上取整。(例如:0.1m 将向上取整为 1m。)如果将来需要更大或更小的数量,这可能会被扩展。
当 Quantity 从字符串解析时,它会记住其后缀类型,并在再次序列化时使用相同的类型。
在序列化之前,Quantity 将被置于 "规范形式"(canonical form)。这意味着指数/后缀将向上或向下调整(尾数相应增加或减少),使得:
- 不会丢失精度 - 不会输出小数位 - 指数(或后缀)尽可能大。
除非数字为负数,否则符号将被省略。
示例:
- 1.5 将被序列化为 "1500m" - 1.5Gi 将被序列化为 "1536Mi"
只要格式正确,非规范值仍可被解析,但会以其规范形式重新输出。(因此请始终使用规范形式,或者不要进行 diff。)
此格式旨在使不编写某种特殊处理代码就使用这些数字变得困难,希望以此促使实现者也使用定点实现。
apiVersion: resource
import "k8s.io/apimachinery/pkg/api/resource"
Quantity
Quantity 是数字的定点表示。它提供了方便的 JSON 和 YAML 编组/解组功能,
以及 String() 和 AsInt64() 访问器。
序列化格式如下:
<quantity> ::= <signedNumber><suffix>
(Note that <suffix> may be empty, from the "" case in <decimalSI>.)
<digit> ::= 0 | 1 | ... | 9 <digits> ::= <digit> | <digit><digits> <number> ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign> ::= "+" | "-" <signedNumber> ::= <number> | <sign><number> <suffix> ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI> ::= Ki | Mi | Gi | Ti | Pi | Ei
(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
<decimalSI> ::= m | "" | k | M | G | T | P | E
(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
<decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber>
无论使用三种指数形式中的哪一种,任何 Quantity 都不能表示幅度大于 2^63-1 的数字, 也不能超过 3 位小数。更大或更精确的数字将被截断或向上取整。 (例如:0.1m 将向上取整为 1m。) 如果将来需要更大或更小的数量,这可能会被扩展。
当 Quantity 从字符串解析时,它会记住其后缀类型,并在再次序列化时使用相同的类型。
在序列化之前,Quantity 将被置于"规范形式"(canonical form)。 这意味着指数/后缀将向上或向下调整(尾数相应增加或减少),使得:
- 不会丢失精度
- 不会输出小数位
- 指数(或后缀)尽可能大。
除非数字为负数,否则符号将被省略。
示例:
- 1.5 将被序列化为 "1500m"
- 1.5Gi 将被序列化为 "1536Mi"
请注意,Quantity 永远不会在内部以浮点数表示。这正是此设计的全部意义所在。
只要格式正确,非规范值仍可被解析,但会以其规范形式重新输出。 (因此请始终使用规范形式,或者不要进行 diff。)
此格式旨在使不编写某种特殊处理代码就使用这些数字变得困难, 希望以此促使实现者也使用定点实现。
28 - ResourceRule
apiVersion: authorization.k8s.io/v1
import "k8s.io/api/authorization/v1"
ResourceRule
ResourceRule 是主体被允许对资源执行的操作列表。 该列表的顺序无关紧要,可能包含重复项,也可能不完整。
| 字段 | 描述 |
|---|---|
apiGroupsstring array | apiGroups 是包含相关资源的 API 组名称。 如果指定了多个 API 组,则针对其中任一 API 组内所列资源发起的任何操作请求都将被允许。 其中,"*" 表示所有。 |
resourceNamesstring array | resourceNames 是一个可选的名称白名单,用于指定该规则适用的对象。 若该集合为空,则表示允许所有对象;"*" 表示所有对象。 |
resourcesstring array | resources 是此规则适用的资源列表。 "*" 表示指定 apiGroups 中的所有资源。"*/foo" 表示指定 apiGroups 中所有资源的子资源 "foo"。 |
verbs *string array | verbs 是 Kubernetes 资源 API 动词的列表,例如: get、list、watch、create、update、delete、proxy。 其中 "*" 表示所有动词。 |
29 - RoleRef
apiVersion: rbac.authorization.k8s.io/v1
import "k8s.io/api/rbac/v1"
RoleRef
RoleRef 包含指向所使用角色的信息。
| Field | Description |
|---|---|
apiGroupstring | APIGroup 是所引用资源所属的 API 组。 |
kind *string | kind 是所引用资源的类型。 |
name *string | name 是所引用资源的名称。 |
30 - RuleWithOperations
apiVersion: admissionregistration.k8s.io/v1
import "k8s.io/api/admissionregistration/v1"
RuleWithOperations
RuleWithOperations 是由 operations 和 resources 组成的元组。建议确保所有元组展开均有效。
| 字段 | 描述 |
|---|---|
apiGroupsstring array | apiGroups 是资源所属的 API 组。'*' 代表所有组。如果包含 '*',则切片长度必须为 1。必填项。 |
apiVersionsstring array | apiVersions 是资源所属的 API 版本。'*' 代表所有版本。如果包含 '*',则切片长度必须为 1。必填项。 |
operationsstring array | operations 指定了准入钩子关注的操作类型,包括 CREATE、UPDATE、DELETE、CONNECT, 或者使用 `*` 来涵盖所有这些操作以及未来新增的准入操作。 如果使用了 `*`,则该切片的长度必须为 1。必填项。 |
resourcesstring array | resources 是此规则适用的资源列表。例如:'pods' 指 Pod 资源;'pods/log' 指 Pod 的 'log' 子资源;'*'' 指所有资源(但不包括子资源);'pods/*' 指 Pod 的所有子资源; '*/scale' 指所有 'scale' 子资源;`*/*` 指所有资源及其子资源。 如果使用了通配符,验证规则将确保各资源之间互不重叠。 根据所处的对象类型,某些情况下可能不允许使用子资源。此字段为必填项。 |
scopestring | scope 指定了此规则的适用范围。有效值为 "Cluster"、"Namespaced" 和 "*"。
"Cluster" 表示仅集群作用域(cluster-scoped)的资源匹配此规则;
Namespace API 对象属于集群作用域资源。
"Namespaced" 表示仅命名空间作用域(namespaced)的资源匹配此规则。
"*" 表示无范围限制。子资源(subresources)的适用范围与其父资源相同。默认值为 "*"。 可能的枚举值: - `"*"` 表示包含所有范围。 - `"Cluster"` 表示范围仅限于集群作用域对象。Namespace 对象属于集群作用域对象。 - `"Namespaced"` 表示范围仅限于命名空间作用域对象。 |
31 - ServerAddressByClientCIDR
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
ServerAddressByClientCIDR
ServerAddressByClientCIDR 帮助客户端根据其匹配的 clientCIDR,确定应使用的服务器地址。
| Field | Description |
|---|---|
clientCIDR *string | 客户端可以匹配其 IP 地址以确定服务器地址的 CIDR。 |
serverAddress *string | 此服务器的地址,适用于符合上述 CIDR 范围的客户端。该地址可以是 hostname、hostname:port、IP 或 IP:port。 |
32 - ServiceReference
apiVersion: admissionregistration.k8s.io/v1
import "k8s.io/api/admissionregistration/v1"
ServiceReference
ServiceReference 持有对 Service.legacy.k8s.io 的引用。
| 字段 | 描述 |
|---|---|
name *string | Service 的名称。必填。 |
namespace *string | Service 的命名空间。必填。 |
pathstring | 服务的可选 URL 路径。在任何请求中都会发送此路径。 |
portinteger | 服务上主机 Webhook 的端口。默认值为 443。`port` 必须是一个有效的端口号(1-65535,包括)。 |
33 - StatusCause
api.Status 失败的更多信息,包括遇到多个错误的情况。apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
StatusCause
StatusCause 提供了关于 api.Status 失败的更多信息,包括遇到多个错误的情况。
| 字段 | 描述 |
|---|---|
fieldstring | 导致此错误的资源字段名称(基于其 JSON 序列化形式)。 对于嵌套属性,可使用点号(dot notation)和后缀表示法(postfix notation)。 数组索引从 0 开始。若某字段存在多个错误,则该字段可能在错误原因列表中多次出现。 可选字段。示例: "name" 表示当前资源上的 "name" 字段; "items[0].name" 表示 "items" 数组中第一个元素里的 "name" 字段。 |
messagestring | 关于错误原因的人类可读描述。 该字段可按原样呈现给读者。 |
reasonstring | 错误原因的机器可读描述。如果该值为空,则无可用信息。 |
34 - StatusDetails
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
StatusDetails
StatusDetails 是一组由服务器设置的附加属性,用于提供关于响应的额外信息。 Status 对象的 Reason 字段定义了将设置哪些属性。 客户端必须忽略那些与各属性定义类型不符的字段,并应假定任何属性都可能为空、无效或未定义。
| 字段 | 描述 |
|---|---|
causesStatusCause array | causes 数组包含与 StatusReason 故障相关的更多详细信息。 并非所有 StatusReason 都会提供详细的故障原因。 |
groupstring | 与 StatusReason 状态关联的资源的组属性。 |
kindstring | 与 StatusReason 状态相关联的资源的 kind(类型)属性。在某些操作中, 该值可能与请求的资源 kind 不同。更多信息请参阅: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
namestring | 与 StatusReason 状态关联的资源的名称属性。当资源只有一个名称时。 |
retryAfterSecondsinteger | 如果指定,操作在指定的秒数后应重试。 一些错误可能指示客户端必须采取替代操作,对于这些错误,此字段可能指示在采取替代操作之前等待的秒数。 |
uidstring | 与 StatusReason 状态关联的资源的唯一标识符(UID)。当资源只有一个时。 |
35 - Subject
apiVersion: rbac.authorization.k8s.io/v1
import "k8s.io/api/rbac/v1"
Subject
Subject 包含对角色绑定所适用的对象或用户身份的引用。 它可以是直接的 API 对象引用,也可以是针对非对象(如用户和组名称)的值。
| 字段 | 描述 |
|---|---|
apiGroupstring | apiGroup 包含所引用主体的 API 组。 对于 ServiceAccount 主体,默认为 ""; 对于 User 和 Group 主体,默认为 "rbac.authorization.k8s.io"。 |
kind *string | 所引用对象的类型。该 API 组定义的取值为 "User"、"Group" 和 "ServiceAccount"。如果授权器(Authorizer)无法识别该类型值, 则应报错。 |
name *string | 所引用对象的名称。 |
namespacestring | 被引用对象的命名空间。如果对象类型属于非命名空间类型(例如 "User" 或 "Group")且该值非空,则授权器应报错。 |
36 - SubjectRulesReviewStatus
apiVersion: authorization.k8s.io/v1
import "k8s.io/api/authorization/v1"
SubjectRulesReviewStatus
SubjectRulesReviewStatus 包含了规则检查的结果。 根据服务器配置的授权器集合以及评估过程中出现的任何错误,该检查结果可能是不完整的。 由于授权规则是累加的,因此如果某条规则出现在列表中, 即便该列表不完整,也可以确信主体拥有相应的权限。
| 字段 | 描述 |
|---|---|
evaluationErrorstring | evaluationError 可能会与“规则”(Rules)一同出现。 它表示在规则评估过程中发生了错误(例如,某个授权器不支持规则评估),并提示 ResourceRules 和/或 NonResourceRules 可能是不完整的。 |
incomplete *boolean | 当本次调用返回的规则不完整时,incomplete 字段为 true。 这种情况最常见于授权器(例如外部授权器)不支持规则评估的场景。 |
nonResourceRules *NonResourceRule array | nonResourceRules 是主体被允许对非资源执行的操作列表。 该列表的顺序无关紧要,可能包含重复项,也可能不完整。 |
resourceRules *ResourceRule array | resourceRules 是主体被允许对资源执行的操作列表。 该列表的顺序无关紧要,可能包含重复项,也可能不完整。 |
37 - Time
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
Time
Time 类型是对 time.Time 的封装,支持正确地序列化为 YAML 和 JSON 格式。
该类型还针对 time 包提供的许多工厂方法提供了相应的封装版本。
38 - Toleration
<key, value, effect> 相匹配的污点(taint),匹配依据由 <operator> 指定。apiVersion: v1
import "k8s.io/api/core/v1"
Toleration
该容忍度所关联的 Pod,能够容忍任何与三元组 <key, value, effect>
相匹配的污点(taint),匹配依据由 <operator> 指定。
| 字段 | 描述 |
|---|---|
effectstring | effect 指定要匹配的污点效应(taint effect)。留空表示匹配所有污点效应。
若指定该字段,允许的值包括 NoSchedule、PreferNoSchedule
和 NoExecute。 可能的枚举值: |
39 - TypedLocalObjectReference
apiVersion: v1
import "k8s.io/api/core/v1"
TypedLocalObjectReference
TypedLocalObjectReference 包含足够的信息,使你能够在同一命名空间内定位所引用的类型化对象。
| 字段 | 描述 |
|---|---|
apiGroupstring | apiGroup 是所引用资源所属的 API 组。如果未指定 apiGroup,则指定的 kind 必须属于核心 API 组。对于任何其他第三方类型,必须指定 apiGroup。 |
kind *string | kind 是所引用资源的类型。 |
name *string | name 是所引用资源的名称。 |
40 - TypedLocalObjectReference
apiVersion: scheduling.k8s.io/v1alpha2
import "k8s.io/api/scheduling/v1alpha2"
TypedLocalObjectReference
TypedLocalObjectReference 允许引用同一命名空间内的类型化对象。
| 字段 | 描述 |
|---|---|
apiGroupstring | apiGroup 是所引用资源所属的 API 组。如果 apiGroup 为空,则指定的 kind 必须属于核心 API 组。 对于任何其他第三方类型,必须设置 apiGroup。该值必须符合 DNS 子域名的格式要求。 |
kind *string | kind 是所引用资源的类型。它必须是一个路径段名称。 |
name *string | name 是所引用资源的名称。它必须是一个路径段名称。 |
41 - UserInfo
user.Info 接口所需的用户信息。apiVersion: authentication.k8s.io/v1
import "k8s.io/api/authentication/v1"
UserInfo
UserInfo 包含实现 user.Info 接口所需的用户信息。
| 字段 | 描述 |
|---|---|
extraobject | extra 是由认证器提供的任何附加信息。 |
groupsstring array | groups 是该用户所属群组的名称。 |
uidstring | uid 是一个用于在不同时间段内唯一标识该用户的数值。 如果该用户被删除,随后又添加了同名用户,这两个用户将拥有不同的 UID。 |
usernamestring | username 是在所有活跃用户中唯一标识该用户的名称。 |
42 - 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` 访问。 |