kube-apiserver 配置 (v1)
v1 包中包含 API 的 v1 版本。
资源类型
AdmissionConfiguration
AdmissionConfiguration 为准入控制器提供版本化的配置。
字段 | 描述 |
---|---|
apiVersion string | apiserver.config.k8s.io/v1 |
kind string | AdmissionConfiguration |
plugins []AdmissionPluginConfiguration |
|
EncryptionConfiguration
EncryptionConfiguration 存储加密驱动的完整配置。它还允许使用通配符来指定应该被加密的资源。 使用 “*.<group>” 以加密组内的所有资源,或使用 “*.*” 以加密所有资源。 “*.” 可用于加密核心组中的所有资源。“*.*” 将加密所有资源,包括在 API 服务器启动后添加的自定义资源。 由于部分配置可能无效,所以不允许在同一资源列表中或跨多个条目使用重叠的通配符。 资源列表被按顺序处理,会优先处理较早的列表。
示例:
kind: EncryptionConfiguration
apiVersion: apiserver.config.k8s.io/v1
resources:
- resources:
- events
providers:
- identity: {} # 即使以下 *.* 被指定,也不会对事件加密
- 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 string | apiserver.config.k8s.io/v1 |
kind string | EncryptionConfiguration |
resources [必需][]ResourceConfiguration | resources 是一个包含资源及其对应加密驱动的列表。 |
AESConfiguration
出现在:
AESConfiguration 包含针对 AES 转换器的 API 配置。
字段 | 描述 |
---|---|
keys [必需][]Key | keys 是一个用于创建 AES 转换器的密钥列表。 对于 AES-CBC,每个密钥的长度必须是 32 字节; 对于 AES-GCM,每个密钥的长度可以是 16、24 或 32 字节。 |
AdmissionPluginConfiguration
出现在:
AdmissionPluginConfiguration 为某个插件提供配置信息。
字段 | 描述 |
---|---|
name [必需]string |
|
path string |
|
configuration k8s.io/apimachinery/pkg/runtime.Unknown |
|
IdentityConfiguration
出现在:
IdentityConfiguration 是一个空结构体,允许在驱动配置中使用身份转换器。
KMSConfiguration
出现在:
KMSConfiguration 包含 KMS 型信封转换器所用的配置文件的名称、缓存大小和路径。
字段 | 描述 |
---|---|
apiVersion string | KeyManagementService 的 apiVersion |
name [必需]string | name 是要使用的 KMS 插件的名称。 |
cachesize int32 | cachesize 是内存中缓存的最大 Secret 数量。默认值为 1000。 设置为负值将禁用缓存。此字段仅允许用于 KMS v1 驱动。 |
endpoint [必需]string | endpoint 是 gRPC 服务器的监听地址,例如 "unix:///var/run/kms-provider.sock"。 |
timeout meta/v1.Duration | timeout 是 gRPC 调用到 KMS 插件的超时时间(例如 5s)。默认值为 3 秒。 |
Key
出现在:
Key 包含为转换器所提供的密钥的名称和 Secret。
字段 | 描述 |
---|---|
name [必需]string | name 是在将数据存储到磁盘时所使用的密钥名称。 |
secret [必需]string | 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 资源列表。
资源名称来源于组/版本/资源的 “ |
providers [必需][]ProviderConfiguration | providers 是从磁盘读取资源和写入资源到磁盘要使用的转换器的列表。 例如:aesgcm、aescbc、secretbox、identity、kms。 |
SecretboxConfiguration
出现在:
SecretboxConfiguration 包含 Secretbox 转换器的 API 配置。
字段 | 描述 |
---|---|
keys [必需][]Key | keys 是一个用于创建 Secretbox 转换器的密钥列表。每个密钥的长度必须为 32 字节。 |