kube-apiserver 准入 (v1)

资源类型

AdmissionReview

AdmissionReview 描述了一个 admission 的请求/响应。

字段描述
apiVersion
string
admission.k8s.io/v1
kind
string
AdmissionReview
request
AdmissionRequest

Request 描述了 admission 请求的属性。

response
AdmissionResponse

Response 描述了 admission 响应的属性。

AdmissionRequest

出现在

AdmissionRequest 描述了 admission 请求的 admission.Attributes。

字段描述
uid [必填]
k8s.io/apimachinery/pkg/types.UID

UID 是单个请求/响应的标识符。它使我们能够区分其他方面相同的请求实例(并行请求、先前请求未修改时的请求等)。UID 用于跟踪 KAS 和 WebHook 之间的往返(请求/响应),而不是用户请求。它适用于关联 webhook 和 apiserver 之间的日志条目,用于审计或调试。

kind [必填]
meta/v1.GroupVersionKind

Kind 是正在提交的对象的完全限定类型(例如,v1.Pod 或 autoscaling.v1.Scale)。

resource [必填]
meta/v1.GroupVersionResource

Resource 是正在请求的完全限定资源(例如,v1.pods)。

subResource
string

SubResource 是正在请求的子资源(如果有)(例如,“status”或“scale”)。

requestKind
meta/v1.GroupVersionKind

RequestKind 是原始 API 请求的完全限定类型(例如,v1.Pod 或 autoscaling.v1.Scale)。如果指定了此字段且与“kind”字段的值不同,则已执行等效匹配和转换。

例如,如果部署可以通过 apps/v1 和 apps/v1beta1 进行修改,并且 webhook 注册了一个规则 apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]matchPolicy: Equivalent,那么对 apps/v1beta1 部署的 API 请求将被转换为 kind: {group:"apps", version:"v1", kind:"Deployment"}(匹配 webhook 注册的规则),并发送到 webhook,同时 requestKind: {group:"apps", version:"v1beta1", kind:"Deployment"}(指示原始 API 请求的 kind)。

有关更多详细信息,请参阅 webhook 配置类型中“matchPolicy”字段的文档。

requestResource
meta/v1.GroupVersionResource

RequestResource 是原始 API 请求的完全限定资源(例如,v1.pods)。如果指定了此字段且与“resource”字段的值不同,则已执行等效匹配和转换。

例如,如果部署可以通过 apps/v1 和 apps/v1beta1 进行修改,并且 webhook 注册了一个规则 apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]matchPolicy: Equivalent,那么对 apps/v1beta1 部署的 API 请求将被转换为 resource: {group:"apps", version:"v1", resource:"deployments"}(匹配 webhook 注册的资源),并发送到 webhook,同时 requestResource: {group:"apps", version:"v1beta1", resource:"deployments"}(指示原始 API 请求的资源)。

有关更多详细信息,请参阅“matchPolicy”字段在 webhook 配置类型中的文档。

requestSubResource
string

RequestSubResource 是原始 API 请求的子资源的名称(如果有)(例如,“status”或“scale”)。如果指定了此字段且与“subResource”字段的值不同,则已执行等效匹配和转换。有关更多详细信息,请参阅 webhook 配置类型中“matchPolicy”字段的文档。

name
string

Name 是请求中呈现的对象名称。在 CREATE 操作中,客户端可以省略名称并依赖服务器生成名称。如果是这种情况,此字段将包含一个空字符串。

命名空间
string

Namespace 是与请求关联的命名空间(如果有)。

operation [必填]
Operation

Operation 是正在执行的操作。这可能与请求的操作不同。例如,patch 操作可能导致 CREATE 或 UPDATE 操作。

userInfo [必填]
authentication/v1.UserInfo

UserInfo 是有关请求用户的信息。

object
k8s.io/apimachinery/pkg/runtime.RawExtension

Object 是来自传入请求的对象。

oldObject
k8s.io/apimachinery/pkg/runtime.RawExtension

OldObject 是现有对象。仅为 DELETE 和 UPDATE 请求填充。

dryRun
bool

DryRun 指示此请求的修改绝对不会被持久化。默认为 false。

options
k8s.io/apimachinery/pkg/runtime.RawExtension

Options 是正在执行的操作的操作选项结构。例如 meta.k8s.io/v1.DeleteOptionsmeta.k8s.io/v1.CreateOptions。这可能与调用者提供的选项不同。例如,对于 patch 请求,执行的操作可能是 CREATE,在这种情况下,即使调用者提供了 meta.k8s.io/v1.PatchOptions,Options 也是 meta.k8s.io/v1.CreateOptions

AdmissionResponse

出现在

AdmissionResponse 描述了一个 admission 响应。

字段描述
uid [必填]
k8s.io/apimachinery/pkg/types.UID

UID 是单个请求/响应的标识符。必须将其从相应的 AdmissionRequest 复制过来。

allowed [必填]
bool

Allowed 指示 admission 请求是否被允许。

status
meta/v1.Status

Result 包含有关 admission 请求被拒绝的额外详细信息。如果 "Allowed" 为 "true",则此字段不会被以任何方式查阅。

patch
[]byte

patch 正文。目前我们只支持 "JSONPatch",它实现了 RFC 6902。

patchType
PatchType

Patch 的类型。目前我们只允许 "JSONPatch"。

auditAnnotations
map[string]string

AuditAnnotations 是由远程 admission controller 设置的非结构化键值映射(例如,error=image-blacklisted)。MutatingAdmissionWebhook 和 ValidatingAdmissionWebhook admission controller 会在键前面加上 admission webhook 的名称(例如,imagepolicy.example.com/error=image-blacklisted)。AuditAnnotations 将由 admission webhook 提供,为该请求的 audit log 添加额外上下文。

warnings
[]string

warnings 是要返回给请求的 API 客户端的警告消息列表。警告消息描述了发起 API 请求的客户端应该纠正或注意的问题。如果可能,将警告限制在 120 个字符以内。超过 256 个字符的警告和大量警告可能会被截断。

Operation

(string 的别名)

出现在

Operation 是正在接受 admission 控制的资源操作的类型。

PatchType

(string 的别名)

出现在

PatchType 是用于表示已修改对象的 patch 类型。

本页面是自动生成的。

如果你打算报告此页面存在的问题,请在问题描述中提及此页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。

最后修改于 2025 年 4 月 24 日上午 8:56 (PST): 更新 v1.33 的配置 API (2bdd42a2f3)