APIServer 保存系统中所有 API 服务器(尤其是 kube-apiserver 和 openshift-apiserver)共享的配置(例如服务证书、客户端 CA 和 CORS 域)。实例的规范名称为“cluster”。兼容性级别 1:在主要版本中稳定至少 12 个月或 3 个次要版本(以较长者为准)。
属性 | 类型 | 描述 |
---|---|---|
|
|
APIVersion 定义此对象表示的版本化模式。服务器应将识别的模式转换为最新的内部值,并可能拒绝无法识别的值。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
|
Kind 是一个字符串值,表示此对象表示的 REST 资源。服务器可以从客户端提交请求的端点推断出这一点。不能更新。使用驼峰式命名法。更多信息: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 包含从集群中观察到的值。它们可能不会被覆盖。 |
spec 包含用户可设置的配置值
对象
属性 | 类型 | 描述 |
---|---|---|
|
|
additionalCORSAllowedOrigins 列出了其他用户定义的正则表达式,这些正则表达式描述了 API 服务器允许使用 CORS 标头访问的主机。这可能需要从 JavaScript 应用程序访问 API 和集成的 OAuth 服务器。这些值是与 Golang 正则表达式语言对应的正则表达式。 |
|
|
audit 指定要应用于集群中所有 OpenShift 提供的 API 服务器的审计配置设置。 |
|
|
clientCA 引用一个 ConfigMap,其中包含将被识别为传入客户端证书的签名者的证书包,此外还有操作员管理的签名者。如果为空,则只有操作员管理的签名者有效。通常,只有当您拥有自己的 PKI 并希望从中认可客户端证书时,才需要设置此项。ConfigMap 必须存在于 openshift-config 命名空间中,并包含以下必需字段:- ConfigMap.Data["ca-bundle.crt"] - CA 包。 |
|
|
encryption 允许配置数据存储层资源的加密。 |
|
|
servingCert 是用于服务安全流量的 TLS 证书信息。如果未指定,则操作员管理的证书将用于服务安全流量。 |
|
|
tlsSecurityProfile 指定外部公开服务器的 TLS 连接设置。如果未设置,则选择默认值(在版本之间可能会更改)。请注意,目前仅支持旧版、中间版和自定义配置文件,并且最大可用的 minTLSVersion 为 VersionTLS12。 |
audit 指定要应用于集群中所有 OpenShift 提供的 API 服务器的审计配置设置。
对象
属性 | 类型 | 描述 |
---|---|---|
|
|
customRules 指定每个组的配置文件。如果这些配置文件适用,则这些配置文件优先于顶级配置文件字段。它们是从上到下进行评估的,第一个匹配的配置文件将被应用。 |
|
|
AuditCustomRule 描述审计配置文件的自定义规则,该规则优先于顶级配置文件。 |
|
|
profile 指定要应用于发送到集群中所有 OpenShift 提供的 API 服务器(kube-apiserver、openshift-apiserver 和 oauth-apiserver)的所有请求的所需顶级审计配置文件的名称,但不包括与一个或多个 customRules 匹配的请求。提供的配置文件如下:- Default:默认策略,这意味着元数据级别的日志记录,但事件(根本不记录)、oauthaccesstokens 和 oauthauthorizetokens(两者都以 RequestBody 级别记录)除外。- WriteRequestBodies:与“Default”类似,但会记录写入请求(创建、更新、修补)的请求和响应 HTTP 负载。- AllRequestBodies:与“WriteRequestBodies”类似,但还会记录读取请求(获取、列出)的请求和响应 HTTP 负载。- None:根本不记录任何请求,甚至不记录 oauthaccesstokens 和 oauthauthorizetokens。警告:除非您完全了解不记录在故障排除时可能会有益的数据的风险,否则不建议使用 |
customRules 指定每个组的配置文件。如果这些配置文件适用,则这些配置文件优先于顶级配置文件字段。它们是从上到下进行评估的,第一个匹配的配置文件将被应用。
数组
AuditCustomRule 描述审计配置文件的自定义规则,该规则优先于顶级配置文件。
对象
group
profile
属性 | 类型 | 描述 |
---|---|---|
|
|
group 是请求用户必须是其成员才能应用此配置文件的组的名称。 |
|
|
profile 指定要部署到集群中所有 OpenShift 提供的 API 服务器的所需审计策略配置的名称。提供的配置文件如下:- Default:现有的默认策略。- WriteRequestBodies:与“Default”类似,但会记录写入请求(创建、更新、修补)的请求和响应 HTTP 负载。- AllRequestBodies:与“WriteRequestBodies”类似,但还会记录读取请求(获取、列出)的请求和响应 HTTP 负载。- None:根本不记录任何请求,甚至不记录 oauthaccesstokens 和 oauthauthorizetokens。如果未设置,则使用“Default”配置文件作为默认值。 |
clientCA 引用一个 ConfigMap,其中包含将被识别为传入客户端证书的签名者的证书包,此外还有操作员管理的签名者。如果为空,则只有操作员管理的签名者有效。通常,只有当您拥有自己的 PKI 并希望从中认可客户端证书时,才需要设置此项。ConfigMap 必须存在于 openshift-config 命名空间中,并包含以下必需字段:- ConfigMap.Data["ca-bundle.crt"] - CA 包。
对象
name
属性 | 类型 | 描述 |
---|---|---|
|
|
name 是引用的 ConfigMap 的 metadata.name。 |
encryption 允许配置数据存储层资源的加密。
对象
属性 | 类型 | 描述 |
---|---|---|
|
|
type 定义应使用哪种加密类型来加密数据存储层中的资源。当此字段未设置(即设置为空字符串)时,隐含身份。未设置的行为会随着时间的推移而发生变化,并可能发生变化。即使默认情况下启用了加密,未设置的含义也可能会根据最佳实践的变化而更改为不同的加密类型。启用加密后,平台附带的所有敏感资源都会被加密。此敏感资源列表会随着时间的推移而发生变化,并可能发生变化。当前权威列表为:1. secrets 2. configmaps 3. routes.route.openshift.io 4. oauthaccesstokens.oauth.openshift.io 5. oauthauthorizetokens.oauth.openshift.io |
servingCert 是用于服务安全流量的 TLS 证书信息。如果未指定,则操作员管理的证书将用于服务安全流量。
对象
属性 | 类型 | 描述 |
---|---|---|
|
|
namedCertificates 引用包含用于向特定主机名提供安全流量的 TLS 证书信息的密钥。如果未提供任何命名证书,或者没有任何命名证书与客户端理解的服务器名称匹配,则将使用 defaultServingCertificate。 |
|
|
APIServerNamedServingCert 将客户端理解的服务器 DNS 名称映射到证书。 |
namedCertificates 引用包含用于向特定主机名提供安全流量的 TLS 证书信息的密钥。如果未提供任何命名证书,或者没有任何命名证书与客户端理解的服务器名称匹配,则将使用 defaultServingCertificate。
数组
APIServerNamedServingCert 将客户端理解的服务器 DNS 名称映射到证书。
对象
属性 | 类型 | 描述 |
---|---|---|
|
|
names 是应使用此证书提供安全流量的显式 DNS 名称(允许前导通配符)的可选列表。如果未提供任何名称,则将从证书中提取隐式名称。精确名称优先于通配符名称。此处定义的显式名称优先于提取的隐式名称。 |
|
|
servingCertificate 引用包含用于提供安全流量的 TLS 证书信息的 kubernetes.io/tls 类型密钥。该密钥必须存在于 openshift-config 命名空间中,并包含以下必需字段:- Secret.Data["tls.key"] - TLS 私钥。- Secret.Data["tls.crt"] - TLS 证书。 |
servingCertificate 引用包含用于提供安全流量的 TLS 证书信息的 kubernetes.io/tls 类型密钥。该密钥必须存在于 openshift-config 命名空间中,并包含以下必需字段:- Secret.Data["tls.key"] - TLS 私钥。- Secret.Data["tls.crt"] - TLS 证书。
对象
name
属性 | 类型 | 描述 |
---|---|---|
|
|
name 是引用的密钥的 metadata.name。 |
tlsSecurityProfile 指定外部公开服务器的 TLS 连接设置。如果未设置,则选择默认值(在版本之间可能会更改)。请注意,目前仅支持旧版、中间版和自定义配置文件,并且最大可用的 minTLSVersion 为 VersionTLS12。
对象
属性 | 类型 | 描述 |
---|---|---|
|
`` |
custom 是用户定义的 TLS 安全配置文件。使用自定义配置文件时要格外小心,因为无效配置可能会造成灾难性后果。自定义配置文件示例如下所示:ciphers: - ECDHE-ECDSA-CHACHA20-POLY1305 - ECDHE-RSA-CHACHA20-POLY1305 - ECDHE-RSA-AES128-GCM-SHA256 - ECDHE-ECDSA-AES128-GCM-SHA256 minTLSVersion: VersionTLS11 |
|
`` |
intermediate 是基于以下内容的 TLS 安全配置文件:https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28recommended.29,其外观如下所示(yaml):ciphers: - 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: VersionTLS12 |
|
`` |
modern 是基于以下内容的 TLS 安全配置文件:https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility,其外观如下所示(yaml):ciphers: - TLS_AES_128_GCM_SHA256 - TLS_AES_256_GCM_SHA384 - TLS_CHACHA20_POLY1305_SHA256 minTLSVersion: VersionTLS13 |
|
`` |
old 是基于以下内容的 TLS 安全配置文件:https://wiki.mozilla.org/Security/Server_Side_TLS#Old_backward_compatibility,其外观如下所示(yaml):ciphers: - 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-SHA - ECDHE-RSA-AES128-SHA - ECDHE-ECDSA-AES256-SHA384 - ECDHE-RSA-AES256-SHA384 - ECDHE-ECDSA-AES256-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: VersionTLS10 |
|
|
type 是 Old、Intermediate、Modern 或 Custom 之一。Custom 提供了指定单个 TLS 安全配置文件参数的能力。Old、Intermediate 和 Modern 是基于以下内容的 TLS 安全配置文件:https://wiki.mozilla.org/Security/Server_Side_TLS#Recommended_configurations 这些配置文件是基于意图的,因此随着新密码的发展和发现现有密码不安全,它们可能会随着时间的推移而发生变化。根据进程可用的密码,列表可能会减少。请注意,目前不支持 Modern 配置文件,因为它尚未被常用软件库广泛采用。 |
提供以下 API 端点
/apis/config.openshift.io/v1/apiservers
DELETE
:删除 APIServer 集合
GET
:列出 APIServer 类型的对象
POST
:创建 APIServer
/apis/config.openshift.io/v1/apiservers/{name}
DELETE
:删除 APIServer
GET
:读取指定的 APIServer
PATCH
:部分更新指定的 APIServer
PUT
:替换指定的 APIServer
/apis/config.openshift.io/v1/apiservers/{name}/status
GET
:读取指定 APIServer 的状态
PATCH
:部分更新指定 APIServer 的状态
PUT
:替换指定 APIServer 的状态
DELETE
删除 APIServer 集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
GET
列出 APIServer 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
POST
创建 APIServer
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
|
|
fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的所有重复字段,只保留最后一个。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为从对象中删除的每个未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将导致请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - 已创建 |
|
202 - 已接受 |
|
401 - 未授权 |
空 |
参数 | 类型 | 描述 |
---|---|---|
|
|
APIServer 的名称 |
DELETE
删除 APIServer
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
202 - 已接受 |
|
401 - 未授权 |
空 |
GET
读取指定的 APIServer
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
PATCH
部分更新指定的 APIServer
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
|
|
fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的所有重复字段,只保留最后一个。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为从对象中删除的每个未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将导致请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
PUT
替换指定的 APIServer
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
|
|
fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的所有重复字段,只保留最后一个。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为从对象中删除的每个未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将导致请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - 已创建 |
|
401 - 未授权 |
空 |
参数 | 类型 | 描述 |
---|---|---|
|
|
APIServer 的名称 |
GET
读取指定的 APIServer 的状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
PATCH
部分更新指定的 APIServer 的状态
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
|
|
fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的所有重复字段,只保留最后一个。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为从对象中删除的每个未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将导致请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
PUT
替换指定的 APIServer 的状态
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
|
|
fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的所有重复字段,只保留最后一个。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为从对象中删除的每个未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将导致请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - 已创建 |
|
401 - 未授权 |
空 |