第 2 章 APIServer [config.openshift.io/v1]


描述
apiserver 包含系统中所有 API 服务器共享的配置(如服务证书、客户端 CA 和 CORS 域),特别是 kube-apiserver 和 openshift-apiserver。实例的规范名称为 'cluster'。兼容性级别 1:在主发行版本中至少提供 12 个月或 3 个次版本(以更长的时间为准)。
类型
object
必填
  • spec

2.1. 规格

属性类型描述

apiVersion

字符串

APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kind

字符串

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

ObjectMeta

标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec

对象

spec 包含用于配置的用户可设置值

status

对象

status 包含从集群中观察到的值。它们可能无法被覆盖。

2.1.1. .spec

描述
spec 包含用于配置的用户可设置值
类型
object
属性类型描述

additionalCORSAllowedOrigins

数组(字符串)

additionalCORSAllowedOrigins 列出了额外的、用户定义的正则表达式,描述 API 服务器允许使用 CORS 标头访问的主机。这可能需要从 JavaScript 应用访问 API 和集成的 OAuth 服务器。值是与 Golang 正则表达式语言对应的正则表达式。

audit

对象

audit 指定审计配置的设置,以应用到集群中的所有 OpenShift 提供的 API 服务器。

clientCA

对象

clientCA 引用包含签名者的证书捆绑包的 ConfigMap,除了 Operator managed signers 外,还会识别传入的客户端证书。如果这为空,则只有 Operator 管理的签名者有效。您通常只需要拥有自己的 PKI,才能从其中遵守客户端证书时,您必须设置此设置。ConfigMap 必须存在于 openshift-config 命名空间中,并包含以下必填字段: - ConfigMap.Data["ca-bundle.crt"] - CA bundle。

encryption

对象

加密允许在数据存储层配置资源加密。

servingCerts

对象

servingCert 是提供安全流量的 TLS 证书信息。如果没有指定,Operator 管理的证书将用于提供安全流量。

tlsSecurityProfile

对象

tlsSecurityProfile 指定外部公开服务器的 TLS 连接的设置。如果未设置,则选择默认值(可在版本间更改)。请注意,目前只支持 Old、Intermediate 和 Custom 配置集,最大可用的 MinTLSVersions 为 VersionTLS12。

2.1.2. .spec.audit

描述
audit 指定审计配置的设置,以应用到集群中的所有 OpenShift 提供的 API 服务器。
类型
object
属性类型描述

customRules

array

customRules 指定每个组的配置集。如果应用,这些配置集优先于顶级配置集字段。它们是从上到下评估,第一个匹配项适用。

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。警告:不建议使用 None 配置集禁用审计日志记录,除非您完全意识到在对问题进行故障排除时无法记录数据的风险。如果禁用审计日志记录且出现支持情况,您可能需要启用审计日志记录并重现问题,才能正确排除故障。如果未设置,则使用 'Default' 配置集作为默认值。

2.1.3. .spec.audit.customRules

描述
customRules 指定每个组的配置集。如果应用,这些配置集优先于顶级配置集字段。它们是从上到下评估,第一个匹配项适用。
类型
array

2.1.4. .spec.audit.customRules[]

描述
auditCustomRule 描述了审计配置集的自定义规则,它优先于顶级配置集。
类型
object
必填
  • group
  • 配置集
属性类型描述

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

字符串

name 是引用的配置映射的 metadata.name

2.1.6. .spec.encryption

描述
加密允许在数据存储层配置资源加密。
类型
object
属性类型描述

type

字符串

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

array

namedCertificates 引用包含 TLS 证书信息的 secret,用于向特定主机名提供安全流量。如果没有提供命名的证书,或者没有命名的证书与客户端理解的服务器名称匹配,则会使用 defaultServingCertificate。

namedCertificates[]

对象

APIServerNamedServingCert 将服务器 DNS 名称(由客户端理解)映射到证书。

2.1.8. .spec.servingCerts.namedCertificates

描述
namedCertificates 引用包含 TLS 证书信息的 secret,用于向特定主机名提供安全流量。如果没有提供命名的证书,或者没有命名的证书与客户端理解的服务器名称匹配,则会使用 defaultServingCertificate。
类型
array

2.1.9. .spec.servingCerts.namedCertificates[]

描述
APIServerNamedServingCert 将服务器 DNS 名称(由客户端理解)映射到证书。
类型
object
属性类型描述

names

数组(字符串)

name 是应使用此证书提供安全流量的显式 DNS 名称(允许使用通配符)的可选列表。如果没有提供名称,则会从证书中提取隐式名称。通过通配符名称的确切名称。这里定义的显式名称通过提取的隐式名称而定义。

servingCertificate

对象

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

字符串

name 是引用的 secret 的 metadata.name

2.1.11. .spec.tlsSecurityProfile

描述
tlsSecurityProfile 指定外部公开服务器的 TLS 连接的设置。如果未设置,则选择默认值(可在版本间更改)。请注意,目前只支持 Old、Intermediate 和 Custom 配置集,最大可用的 MinTLSVersions 为 VersionTLS12。
类型
object
属性类型描述

custom

``

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

``

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

``

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.

old

``

旧是一个基于以下的 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

字符串

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
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.