diff --git a/content/zh-cn/docs/reference/config-api/apiserver-admission.v1.md b/content/zh-cn/docs/reference/config-api/apiserver-admission.v1.md new file mode 100644 index 0000000000..d28774dc63 --- /dev/null +++ b/content/zh-cn/docs/reference/config-api/apiserver-admission.v1.md @@ -0,0 +1,426 @@ +--- +title: kube-apiserver Admission (v1) +content_type: tool-reference +package: admission.k8s.io/v1 +--- + + + +## 资源类型 + +- [AdmissionReview](#admission-k8s-io-v1-AdmissionReview) + +## `AdmissionReview` {#admission-k8s-io-v1-AdmissionReview} + + +

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

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

request 描述准入请求的属性。

+
response
+AdmissionResponse +
+ +

response 描述准入响应的属性。

+
+ +## `AdmissionRequest` {#admission-k8s-io-v1-AdmissionRequest} + + +**出现在:** + +- [AdmissionReview](#admission-k8s-io-v1-AdmissionReview) + + +

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` {#admission-k8s-io-v1-AdmissionResponse} + + +**出现在:** + +- [AdmissionReview](#admission-k8s-io-v1-AdmissionReview) + + +

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` {#admission-k8s-io-v1-Operation} + + +(`string` 的别名) + +**出现在:** + +- [AdmissionRequest](#admission-k8s-io-v1-AdmissionRequest) + + +

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

+ +## `PatchType` {#admission-k8s-io-v1-PatchType} + + +(`string` 的别名) + +**出现在:** + +- [AdmissionResponse](#admission-k8s-io-v1-AdmissionResponse) + + +

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