Information in this document may be out of date

This document has an older update date than the original, so the information it contains may be out of date. If you're able to read English, see the English version for the most up-to-date information: kube-apiserver Admission (v1)

kube-apiserver Admission (v1)

资源类型

AdmissionReview

AdmissionReview 描述准入评审请求/响应。

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

request 描述准入请求的属性。

response
AdmissionResponse

response 描述准入响应的属性。

AdmissionRequest

出现在:

AdmissionRequest 描述准入请求的 admission.Attributes。

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

uid 是用于标识单个请求/响应的标识符。它允许我们区分在其他情况下完全相同的请求实例(并行请求、在先前请求未修改时的请求等)。 uid 的目的是跟踪 KAS(Kubernetes Admission Server)和 WebHook 之间的轮询(请求/响应),而不是用户请求。 它适用于在 WebHook 和 API 服务器之间建立日志条目上的关联,从而服务于审计或调试目的。

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" 中的值,则执行等效的匹配和转换。

例如,如果 Deployment 可以通过 apps/v1 和 apps/v1beta1 进行修改,并且 Webhook 注册了 apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]matchPolicy: Equivalent 的规则,那么指向 apps/v1beta1 Deployment 的 API 请求将被转换并发送到 Webhook, 其中 kind: {group:"apps", version:"v1", kind:"Deployment"} (与 Webhook 注册的规则匹配)并且 requestKind: {group:"apps", version:"v1beta1", kind:"Deployment"}(指示原始 API 请求的类别)。

参阅文档了解 Webhook 配置类型中 "matchPolicy" 字段的更多细节。

requestResource
meta/v1.GroupVersionResource

requestResource 是原始 API 请求的全限定资源名称(例如 v1.pods)。 如果此字段被指定且不同于 "resource" 中的值,则执行等效的匹配和转换。

例如,如果 Deployment 可以通过 apps/v1 和 apps/v1beta1 修改,并且 Webhook 注册了 apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]matchPolicy: Equivalent 的规则,那么指向 apps/v1beta1 Deployment 的 API 请求将被转换并发送到 Webhook, 其中 resource: {group:"apps", version:"v1", resource:"deployments"} (与 Webhook 注册的资源匹配)以及 requestResource: {group:"apps", version:"v1beta1", resource:"deployments"}(指示原始 API 请求的资源)。

参阅文档了解 Webhook 配置类型中 "matchPolicy" 字段的更多细节。

requestSubResource
string

requestSubResource 是可能存在的、原始 API 所请求的子资源(例如 "status" 或 "scale")。 如果此字段被指定且不同于 "subResource" 中的值,则执行等效的匹配和转换。 参阅文档了解 Webhook 配置类型中的 "matchPolicy" 字段。

name
string

name 是出现在请求中的对象的名称。客户端在执行 CREATE 操作时,可以忽略此命令并依赖服务器生成此名称。 如果是这种情况,此字段将包含一个空白字符串。

namespace
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.PatchOptionsoptions 也将是 meta.k8s.io/v1.CreateOptions

AdmissionResponse

出现在:

AdmissionResponse 描述准入响应。

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

uid 是标识单独请求/响应的标识符。 它必须从相应的 AdmissionRequest 复制过来。

allowed [必需]
bool

allowed 表示准入请求是否被允许。

status
meta/v1.Status

status 包含为什么准入请求被拒绝的额外细节。 如果 "Allowed" 的值为 "true",则不会以任何方式使用此字段。

patch
[]byte

patch 操作的主体。目前 Kubernetes 仅支持实现了 RFC 6902 的 "JSONPatch"。

patchType
PatchType

patch 的类型。目前 Kubernetes 仅允许 "JSONPatch"。

auditAnnotations
map[string]string

auditAnnotations 是由远程准入控制器设置的非结构化键值映射(例如 error=image-blacklisted)。 MutatingAdmissionWebhook 和 ValidatingAdmissionWebhook 准入控制器将在键前缀中使用准入 Webhook 名称 (例如 imagepolicy.example.com/error=image-blacklisted)。auditAnnotations 将由准入 Webhook 提供,向此请求的审计日志添加额外的上下文。

warnings
[]string

warnings 是警告消息的列表,返回给发出请求的 API 客户端。 这些警告消息描述客户端在进行 API 请求时应该纠正或注意的问题。 如果可能的话,将 warnings 限制在 120 个字符以内。 如果 warnings 中的消息超过 256 个字符,或 warnings 数量过多,可能会被截断。

Operation

string 的别名)

出现在:

Operation 是正在检查准入控制时资源操作的类型。

PatchType

string 的别名)

出现在:

PatchType 是用于表示所变更对象的补丁类型。