第 2 章 APIServer [config.openshift.io/v1]
- 描述
- apiserver 包含系统中所有 API 服务器共享的配置(如服务证书、客户端 CA 和 CORS 域),特别是 kube-apiserver 和 openshift-apiserver。实例的规范名称为 'cluster'。兼容性级别 1:在主发行版本中至少提供 12 个月或 3 个次版本(以更长的时间为准)。
- 类型
-
object
- 必填
-
spec
-
2.1. 规格
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| spec 包含用于配置的用户可设置值 |
|
| status 包含从集群中观察到的值。它们可能无法被覆盖。 |
2.1.1. .spec
- 描述
- spec 包含用于配置的用户可设置值
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| additionalCORSAllowedOrigins 列出了额外的、用户定义的正则表达式,描述 API 服务器允许使用 CORS 标头访问的主机。这可能需要从 JavaScript 应用访问 API 和集成的 OAuth 服务器。值是与 Golang 正则表达式语言对应的正则表达式。 |
|
| audit 指定审计配置的设置,以应用到集群中的所有 OpenShift 提供的 API 服务器。 |
|
| clientCA 引用包含签名者的证书捆绑包的 ConfigMap,除了 Operator managed signers 外,还会识别传入的客户端证书。如果这为空,则只有 Operator 管理的签名者有效。您通常只需要拥有自己的 PKI,才能从其中遵守客户端证书时,您必须设置此设置。ConfigMap 必须存在于 openshift-config 命名空间中,并包含以下必填字段: - ConfigMap.Data["ca-bundle.crt"] - CA bundle。 |
|
| 加密允许在数据存储层配置资源加密。 |
|
| servingCert 是提供安全流量的 TLS 证书信息。如果没有指定,Operator 管理的证书将用于提供安全流量。 |
|
| tlsSecurityProfile 指定外部公开服务器的 TLS 连接的设置。如果未设置,则选择默认值(可在版本间更改)。请注意,目前只支持 Old、Intermediate 和 Custom 配置集,最大可用的 MinTLSVersions 为 VersionTLS12。 |
2.1.2. .spec.audit
- 描述
- audit 指定审计配置的设置,以应用到集群中的所有 OpenShift 提供的 API 服务器。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| customRules 指定每个组的配置集。如果应用,这些配置集优先于顶级配置集字段。它们是从上到下评估,第一个匹配项适用。 |
|
| auditCustomRule 描述了审计配置集的自定义规则,它优先于顶级配置集。 |
|
|
profile 指定所需的顶级审计配置集的名称,以应用到发送到集群中任何 OpenShift 提供的 API 服务器的所有请求(kube-apiserver、openshift-apiserver 和 oauth-apiserver),除了与一个或多个 customRules 匹配的请求除外。提供了以下配置集: - Default: default policy,它表示 MetaData 级别日志记录,但事件除外,oauthaccesstokens 和 oauthauthorizetokens (在 RequestBody 级别记录)。- WriteRequestBodies: like 'Default',但日志请求和响应 HTTP 有效负载用于写入请求(创建、更新、补丁)。- AllRequestBodies: like 'WriteRequestBodies', 但是,还会记录读取请求的请求和响应 HTTP 有效负载(get, list)。- None:没有记录任何请求,即使 oauthaccesstokens 和 oauthauthorizetokens。警告:不建议使用 |
2.1.3. .spec.audit.customRules
- 描述
- customRules 指定每个组的配置集。如果应用,这些配置集优先于顶级配置集字段。它们是从上到下评估,第一个匹配项适用。
- 类型
-
array
2.1.4. .spec.audit.customRules[]
- 描述
- auditCustomRule 描述了审计配置集的自定义规则,它优先于顶级配置集。
- 类型
-
object
- 必填
-
group
-
配置集
-
属性 | 类型 | 描述 |
---|---|---|
|
| group 是请求用户必须属于 的组名称,才能应用此配置文件。 |
|
| profile 指定要部署到集群中的所有 OpenShift 提供的 API 服务器所需的审计策略配置的名称。提供了以下配置集: - Default: existing 默认策略。- WriteRequestBodies: like 'Default', logs request and response HTTP payloads for write requests (create, update, patch). - AllRequestBodies: like 'WriteRequestBodies', also logs requests and response HTTP payloads for read requests (get, list). - None: no requests all, all, not even oauthaccesstokens and oauthtokens.tokens.tokens.如果未设置,则使用 'Default' 配置集作为默认值。 |
2.1.5. .spec.clientCA
- 描述
- clientCA 引用包含签名者的证书捆绑包的 ConfigMap,除了 Operator managed signers 外,还会识别传入的客户端证书。如果这为空,则只有 Operator 管理的签名者有效。您通常只需要拥有自己的 PKI,才能从其中遵守客户端证书时,您必须设置此设置。ConfigMap 必须存在于 openshift-config 命名空间中,并包含以下必填字段: - ConfigMap.Data["ca-bundle.crt"] - CA bundle。
- 类型
-
object
- 必填
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是引用的配置映射的 metadata.name |
2.1.6. .spec.encryption
- 描述
- 加密允许在数据存储层配置资源加密。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| Type 定义应在数据存储层上加密资源的加密类型。当此字段未设置时(例如,当它被设置为空字符串时),则表示 identity。未设置的行为可以随时间变化。即使默认启用加密,但未设置的含义可能会根据最佳实践中的更改更改为不同的加密类型。启用加密后,平台附带的所有敏感资源都会被加密。这种敏感资源列表可以,随时间推移而变化。当前权威列表为: 1. secrets 2. configmaps 3. routes.route.openshift.io 4. oauthaccesstokens.oauth.openshift.io 5. oauthauthorizetokens.oauth.openshift.io |
2.1.7. .spec.servingCerts
- 描述
- servingCert 是提供安全流量的 TLS 证书信息。如果没有指定,Operator 管理的证书将用于提供安全流量。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| namedCertificates 引用包含 TLS 证书信息的 secret,用于向特定主机名提供安全流量。如果没有提供命名的证书,或者没有命名的证书与客户端理解的服务器名称匹配,则会使用 defaultServingCertificate。 |
|
| APIServerNamedServingCert 将服务器 DNS 名称(由客户端理解)映射到证书。 |
2.1.8. .spec.servingCerts.namedCertificates
- 描述
- namedCertificates 引用包含 TLS 证书信息的 secret,用于向特定主机名提供安全流量。如果没有提供命名的证书,或者没有命名的证书与客户端理解的服务器名称匹配,则会使用 defaultServingCertificate。
- 类型
-
array
2.1.9. .spec.servingCerts.namedCertificates[]
- 描述
- APIServerNamedServingCert 将服务器 DNS 名称(由客户端理解)映射到证书。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| name 是应使用此证书提供安全流量的显式 DNS 名称(允许使用通配符)的可选列表。如果没有提供名称,则会从证书中提取隐式名称。通过通配符名称的确切名称。这里定义的显式名称通过提取的隐式名称而定义。 |
|
| servingCertificate 引用一个 kubernetes.io/tls 类型 secret,其中包含用于提供安全流量的 TLS 证书信息。secret 必须存在于 openshift-config 命名空间中,并包含以下必填字段: - Secret.Data["tls.key"] - TLS 私钥。- Secret.Data["tls.crt"] - TLS 证书。 |
2.1.10. .spec.servingCerts.namedCertificates[].servingCertificate
- 描述
- servingCertificate 引用一个 kubernetes.io/tls 类型 secret,其中包含用于提供安全流量的 TLS 证书信息。secret 必须存在于 openshift-config 命名空间中,并包含以下必填字段: - Secret.Data["tls.key"] - TLS 私钥。- Secret.Data["tls.crt"] - TLS 证书。
- 类型
-
object
- 必填
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是引用的 secret 的 metadata.name |
2.1.11. .spec.tlsSecurityProfile
- 描述
- tlsSecurityProfile 指定外部公开服务器的 TLS 连接的设置。如果未设置,则选择默认值(可在版本间更改)。请注意,目前只支持 Old、Intermediate 和 Custom 配置集,最大可用的 MinTLSVersions 为 VersionTLS12。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
| `` | Custom 是一个用户定义的 TLS 安全配置集。使用自定义配置集时要非常小心,因为无效的配置可能是灾难性的。一个自定义配置集示例: password: - ECDHE-ECDSA-CHACHA20-POLY1305 - ECDHE-RSA-CHACHA20-POLY1305 - ECDHE-RSA-AES128-GCM-SHA256 - ECDHE-ECDSA-AES128-GCM-SHA256 minTLSVersion: TLSv1.1 |
| `` | intermediate 是一个基于以下内容的 TLS 安全配置集: https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28recommended.29 https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28recommended.29 and looks like this (yaml): - TLS_AES_128_GCM_SHA256 - TLS_AES_256_GCM_SHA384 - TLS_CHACHA20_POLY1305_SHA256 - ECDHE-ECDSA-AES128-GCM-SHA256 - ECDHE-RSA-AES128-GCM-SHA256 - ECDHE-ECDSA-AES256-GCM-SHA384 - ECDHE-RSA-AES256-GCM-SHA384 - ECDHE-ECDSA-CHACHA20-POLY1305 - ECDHE-RSA-CHACHA20-POLY1305 - DHE-RSA-AES128-GCM-SHA256 - DHE-RSA-AES256-GCM-SHA384 minTLSVersion: TLSv1.2 |
| `` | modern 是一个基于 https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility 的 TLS 安全配置集,如下所示:密码: - TLS_AES_128_GCM_SHA256 - TLS_AES_256_GCM_SHA384 - TLS_CHACHA20_POLY1305_SHA256 minTLSVersion: TLSv1.3 NOTE: Current unsupported. |
| `` | 旧是一个基于以下的 TLS 安全配置集: https://wiki.mozilla.org/Security/Server_Side_TLS#Old_backward_compatibility https://wiki.mozilla.org/Security/Server_Side_TLS#Old_backward_compatibility and looks like this (yaml): - TLS_AES_128_GCM_SHA256 - TLS_AES_256_GCM_SHA384 - TLS_CHACHA20_POLY1305_SHA256 - ECDHE-ECDSA-AES128-GCM-SHA256 - ECDHE-RSA-AES128-GCM-SHA256 - ECDHE-ECDSA-AES256-GCM-SHA384 - ECDHE-RSA-AES256-GCM-SHA384 - ECDHE-ECDSA-CHACHA20-POLY1305 - ECDHE-RSA-CHACHA20-POLY1305 - DHE-RSA-AES128-GCM-SHA256 - DHE-RSA-AES256-GCM-SHA384 - DHE-RSA-CHACHA20-POLY1305 - ECDHE-ECDSA-AES128-SHA256 - ECDHE-RSA-AES128-SHA256 - ECDHE-ECDSA-AES128-AES128-SHA - ECDHE-RSA-AES128-AES256-SHA384 - ECDHE-RSA-AES256-SHA384 - ECDHE-ECDSA-AES256-SHA-SHA - ECDHE-RSA-AES256-SHA - DHE-RSA-AES128-SHA256 - DHE-RSA-AES256-SHA256 - AES128-GCM-SHA256 - AES256-GCM-SHA384 - AES128-SHA256 - AES256-SHA256 - AES128-SHA - AES256-SHA - DES-CBC3-SHA minTLSVersion: TLSv1.0 |
|
| type 是 Old、Intermediate、Modern 或 Custom 之一。自定义提供指定各个 TLS 安全配置集参数的功能。旧,Intermediate 和 Modern 是基于 TLS 安全配置集 :https://wiki.mozilla.org/Security/Server_Side_TLS#Recommended_configurations。 配置集基于意图,因此当开发新密码时可能会随时间变化,并且发现现有密码不安全。根据具体哪些密码可用于进程,可以减少列表。请注意,Modern 配置集目前还不被支持,因为它还没有被常见软件库正确采用。 |
2.1.12. .status
- 描述
- status 包含从集群中观察到的值。它们可能无法被覆盖。
- 类型
-
object