此文档中的信息可能已过时
此文档的更新日期比原文晚,因此其中的信息可能已过时。如果能阅读英文,请查看英文版本以获取最新信息: kube-apiserver Admission (v1)
kube-apiserver Admission (v1)
资源类型
AdmissionReview
AdmissionReview
描述准入评审请求/响应。
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.DeleteOptions 或 meta.k8s.io/v1.CreateOptions 。
所设置的值可能不同于调用方所提供的选项。例如 patch 请求执行的操作可能是 CREATE,那这种情况下即使调用方提供了
meta.k8s.io/v1.PatchOptions ,options 也将是 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
是用于表示所变更对象的补丁类型。