kube-apiserver 配置 (v1)
包 v1 是 API 的 v1 版本。
资源类型
准入配置(AdmissionConfiguration)
AdmissionConfiguration 提供准入控制器的版本化配置。
字段 | 描述 |
---|---|
apiVersion 字符串 | apiserver.config.k8s.io/v1 |
kind 字符串 | 准入配置(AdmissionConfiguration) |
plugins []AdmissionPluginConfiguration | Plugins 允许为每个准入控制插件指定配置。 |
授权配置(AuthorizationConfiguration)
字段 | 描述 |
---|---|
apiVersion 字符串 | apiserver.config.k8s.io/v1 |
kind 字符串 | 授权配置(AuthorizationConfiguration) |
authorizers [必填][]AuthorizerConfiguration | Authorizers 是一个有序的授权器列表,用于授权针对请求的授权。这类似于 kube-apiserver 的 --authorization-modes 标志。必须至少有一个。 |
加密配置(EncryptionConfiguration)
EncryptionConfiguration 存储加密提供程序的完整配置。它还允许使用通配符来指定要加密的资源。使用“*”来加密组内的所有资源,或使用“*.*”来加密所有资源。“*”可用于加密核心组中的所有资源。“*.*”将加密所有资源,甚至包括在 API 服务器启动后添加的自定义资源。不允许在同一资源列表中或跨多个条目使用重叠的通配符,因为部分配置将无效。资源列表按顺序处理,较早的列表优先。
示例
kind: EncryptionConfiguration
apiVersion: apiserver.config.k8s.io/v1
resources:
- resources:
- events
providers:
- identity: {} # do not encrypt events even though *.* is specified below
- resources:
- secrets
- configmaps
- pandas.awesome.bears.example
providers:
- aescbc:
keys:
- name: key1
secret: c2VjcmV0IGlzIHNlY3VyZQ==
- resources:
- '*.apps'
providers:
- aescbc:
keys:
- name: key2
secret: c2VjcmV0IGlzIHNlY3VyZSwgb3IgaXMgaXQ/Cg==
- resources:
- '*.*'
providers:
- aescbc:
keys:
- name: key3
secret: c2VjcmV0IGlzIHNlY3VyZSwgSSB0aGluaw==
字段 | 描述 |
---|---|
apiVersion 字符串 | apiserver.config.k8s.io/v1 |
kind 字符串 | 加密配置(EncryptionConfiguration) |
resources [必填][]ResourceConfiguration | resources 是一个包含资源及其相应加密提供程序的列表。 |
AESConfiguration
出现于
AESConfiguration 包含 AES 转换器的 API 配置。
字段 | 描述 |
---|---|
keys [必填][]Key | keys 是用于创建 AES 转换器的密钥列表。对于 AES-CBC,每个密钥必须为 32 字节长;对于 AES-GCM,每个密钥必须为 16、24 或 32 字节长。 |
AdmissionPluginConfiguration
出现于
AdmissionPluginConfiguration 提供单个插件的配置。
字段 | 描述 |
---|---|
name [必填]字符串 | Name 是准入控制器的名称。它必须与注册的准入插件名称匹配。 |
path 字符串 | Path 是包含插件配置的配置文件的路径。 |
configuration k8s.io/apimachinery/pkg/runtime.Unknown | Configuration 是一个嵌入式配置对象,用作插件的配置。如果存在,它将代替配置文件的路径使用。 |
AuthorizerConfiguration
出现于
字段 | 描述 |
---|---|
type [必填]字符串 | Type 指的是授权器的类型。“Webhook”在通用 API 服务器中受支持。其他 API 服务器可能支持其他授权器类型,如 Node、RBAC、ABAC 等。 |
name [必填]字符串 | 用于描述 Webhook 的名称。这在监控机制中明确用于指标。注意:名称必须是 DNS1123 标签,例如 `myauthorizername` 或子域名,例如 `myauthorizer.example.domain`。必填,无默认值。 |
webhook [必填]WebhookConfiguration | Webhook 定义 Webhook 授权器的配置。当 Type=Webhook 时必须定义。当 Type!=Webhook 时不得定义。 |
IdentityConfiguration
出现于
IdentityConfiguration 是一个空结构体,允许在提供程序配置中使用身份转换器。
KMSConfiguration
出现于
KMSConfiguration 包含基于 KMS 的信封转换器的名称、缓存大小和配置文件路径。
字段 | 描述 |
---|---|
apiVersion 字符串 | KeyManagementService 的 apiVersion |
name [必填]字符串 | name 是要使用的 KMS 插件的名称。 |
cachesize int32 | cachesize 是在内存中缓存的密钥的最大数量。默认值为 1000。设置为负值以禁用缓存。此字段仅允许用于 KMS v1 提供程序。 |
endpoint [必填]字符串 | endpoint 是 gRPC 服务器侦听地址,例如“unix:///var/run/kms-provider.sock”。 |
timeout meta/v1.Duration | 调用 kms-plugin 的 gRPC 超时时间(例如 5s)。默认为 3 秒。 |
Key
出现于
Key 包含转换器提供的密钥的名称和密钥。
字段 | 描述 |
---|---|
name [必填]字符串 | name 是将数据存储到磁盘时要使用的密钥的名称。 |
secret [必填]字符串 | secret 是实际的密钥,以 base64 编码。 |
ProviderConfiguration
出现于
ProviderConfiguration 存储加密提供程序的提供的配置。
字段 | 描述 |
---|---|
aesgcm [必填]AESConfiguration | aesgcm 是 AES-GCM 转换器的配置。 |
aescbc [必填]AESConfiguration | aescbc 是 AES-CBC 转换器的配置。 |
secretbox [必填]SecretboxConfiguration | secretbox 是基于 Secretbox 的转换器的配置。 |
identity [必填]IdentityConfiguration | identity 是身份转换器的(空)配置。 |
kms [必填]KMSConfiguration | kms 包含基于 KMS 的信封转换器的名称、缓存大小和配置文件路径。 |
ResourceConfiguration
出现于
ResourceConfiguration 存储每个资源的配置。
字段 | 描述 |
---|---|
resources [必填][]string | resources 是必须加密的 kubernetes 资源列表。资源名称派生自组/版本/资源的 `resource` 或 `resource.group`。例如:pandas.awesome.bears.example 是一个自定义资源,其 'group':awesome.bears.example,'resource':pandas。使用“*.*”加密所有资源,使用“*”加密特定组中的所有资源。例如:“*.awesome.bears.example”将加密“awesome.bears.example”组中的所有资源。例如:“*”将加密核心组中的所有资源(例如 pod、configmap 等)。 |
providers [必填][]ProviderConfiguration | providers 是用于读取和写入磁盘资源的转换器列表。例如:aesgcm、aescbc、secretbox、identity、kms。 |
SecretboxConfiguration
出现于
SecretboxConfiguration 包含 Secretbox 转换器的 API 配置。
字段 | 描述 |
---|---|
keys [必填][]Key | keys 是用于创建 Secretbox 转换器的密钥列表。每个密钥必须为 32 字节长。 |
WebhookConfiguration
出现于
字段 | 描述 |
---|---|
authorizedTTL [必填]meta/v1.Duration | 缓存 Webhook 授权器“已授权”响应的持续时间。与设置 `--authorization-webhook-cache-authorized-ttl` 标志相同。默认值:5m0s |
unauthorizedTTL [必填]meta/v1.Duration | 缓存 Webhook 授权器“未授权”响应的持续时间。与设置 `--authorization-webhook-cache-unauthorized-ttl` 标志相同。默认值:30s |
timeout [必填]meta/v1.Duration | Webhook 请求的超时时间。最大允许值为 30 秒。必填,无默认值。 |
subjectAccessReviewVersion [必填]字符串 | 要发送到 Webhook 并期望从 Webhook 接收的 authorization.k8s.io SubjectAccessReview 的 API 版本。与设置 `--authorization-webhook-version` 标志相同。有效值:v1beta1、v1。必填,无默认值。 |
matchConditionSubjectAccessReviewVersion [必填]字符串 | matchConditionSubjectAccessReviewVersion 指定针对其评估 CEL 表达式的 SubjectAccessReview 版本。有效值:v1。必填,无默认值。 |
failurePolicy [必填]字符串 | 控制当 Webhook 请求无法完成或返回格式错误的响应或评估 matchConditions 时出错时的授权决策。有效值:
|
connectionInfo [必填]WebhookConnectionInfo | connectionInfo 定义了我们如何与 Webhook 通信。 |
matchConditions [必填][]WebhookMatchCondition | matchConditions 是必须满足才能将请求发送到此 Webhook 的条件列表。matchConditions 的空列表匹配所有请求。最多允许 64 个匹配条件。 确切的匹配逻辑是(按顺序):
|
WebhookConnectionInfo
出现于
字段 | 描述 |
---|---|
type [必填]字符串 | 控制 Webhook 应如何与服务器通信。有效值:
|
kubeConfigFile [必填]字符串 | 连接信息的 KubeConfigFile 路径。如果 connectionInfo.Type 为 KubeConfig,则必填。 |
WebhookMatchCondition
出现于
字段 | 描述 |
---|---|
expression [必填]字符串 | expression 表示将由 CEL 评估的表达式。必须计算结果为布尔值。CEL 表达式可以访问 v1 版本中 SubjectAccessReview 的内容。如果请求变量中 subjectAccessReviewVersion 指定的版本为 v1beta1,则在评估 CEL 表达式之前,内容将转换为 v1 版本。
CEL 文档:https://kubernetes.top/docs/reference/using-api/cel/ |
此页面自动生成。
如果您计划报告此页面的问题,请在问题描述中提及此页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。