×
描述

APIServer 保存系统中所有 API 服务器(尤其是 kube-apiserver 和 openshift-apiserver)共享的配置(例如服务证书、客户端 CA 和 CORS 域)。实例的规范名称为“cluster”。兼容性级别 1:在主要版本中稳定至少 12 个月或 3 个次要版本(以较长者为准)。

类型

对象

必需
  • spec

规范

属性 类型 描述

apiVersion

字符串

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

kind

字符串

Kind 是一个字符串值,表示此对象表示的 REST 资源。服务器可以从客户端提交请求的端点推断出这一点。不能更新。使用驼峰式命名法。更多信息: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 包含从集群中观察到的值。它们可能不会被覆盖。

.spec

描述

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

类型

对象

属性 类型 描述

additionalCORSAllowedOrigins

数组 (字符串)

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

audit

对象

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

clientCA

对象

clientCA 引用一个 ConfigMap,其中包含将被识别为传入客户端证书的签名者的证书包,此外还有操作员管理的签名者。如果为空,则只有操作员管理的签名者有效。通常,只有当您拥有自己的 PKI 并希望从中认可客户端证书时,才需要设置此项。ConfigMap 必须存在于 openshift-config 命名空间中,并包含以下必需字段:- ConfigMap.Data["ca-bundle.crt"] - CA 包。

encryption

对象

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

servingCerts

对象

servingCert 是用于服务安全流量的 TLS 证书信息。如果未指定,则操作员管理的证书将用于服务安全流量。

tlsSecurityProfile

对象

tlsSecurityProfile 指定外部公开服务器的 TLS 连接设置。如果未设置,则选择默认值(在版本之间可能会更改)。请注意,目前仅支持旧版、中间版和自定义配置文件,并且最大可用的 minTLSVersion 为 VersionTLS12。

.spec.audit

描述

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

类型

对象

属性 类型 描述

customRules

数组

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

customRules[]

对象

AuditCustomRule 描述审计配置文件的自定义规则,该规则优先于顶级配置文件。

profile

字符串

profile 指定要应用于发送到集群中所有 OpenShift 提供的 API 服务器(kube-apiserver、openshift-apiserver 和 oauth-apiserver)的所有请求的所需顶级审计配置文件的名称,但不包括与一个或多个 customRules 匹配的请求。提供的配置文件如下:- Default:默认策略,这意味着元数据级别的日志记录,但事件(根本不记录)、oauthaccesstokens 和 oauthauthorizetokens(两者都以 RequestBody 级别记录)除外。- WriteRequestBodies:与“Default”类似,但会记录写入请求(创建、更新、修补)的请求和响应 HTTP 负载。- AllRequestBodies:与“WriteRequestBodies”类似,但还会记录读取请求(获取、列出)的请求和响应 HTTP 负载。- None:根本不记录任何请求,甚至不记录 oauthaccesstokens 和 oauthauthorizetokens。警告:除非您完全了解不记录在故障排除时可能会有益的数据的风险,否则不建议使用None 配置文件禁用审计日志记录。如果您禁用了审计日志记录并且出现了支持情况,您可能需要启用审计日志记录并重现问题才能正确进行故障排除。如果未设置,则使用“Default”配置文件作为默认值。

.spec.audit.customRules

描述

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

类型

数组

.spec.audit.customRules[]

描述

AuditCustomRule 描述审计配置文件的自定义规则,该规则优先于顶级配置文件。

类型

对象

必需
  • group

  • profile

属性 类型 描述

group

字符串

group 是请求用户必须是其成员才能应用此配置文件的组的名称。

profile

字符串

profile 指定要部署到集群中所有 OpenShift 提供的 API 服务器的所需审计策略配置的名称。提供的配置文件如下:- Default:现有的默认策略。- WriteRequestBodies:与“Default”类似,但会记录写入请求(创建、更新、修补)的请求和响应 HTTP 负载。- AllRequestBodies:与“WriteRequestBodies”类似,但还会记录读取请求(获取、列出)的请求和响应 HTTP 负载。- None:根本不记录任何请求,甚至不记录 oauthaccesstokens 和 oauthauthorizetokens。如果未设置,则使用“Default”配置文件作为默认值。

.spec.clientCA

描述

clientCA 引用一个 ConfigMap,其中包含将被识别为传入客户端证书的签名者的证书包,此外还有操作员管理的签名者。如果为空,则只有操作员管理的签名者有效。通常,只有当您拥有自己的 PKI 并希望从中认可客户端证书时,才需要设置此项。ConfigMap 必须存在于 openshift-config 命名空间中,并包含以下必需字段:- ConfigMap.Data["ca-bundle.crt"] - CA 包。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

name 是引用的 ConfigMap 的 metadata.name。

.spec.encryption

描述

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

类型

对象

属性 类型 描述

type

字符串

type 定义应使用哪种加密类型来加密数据存储层中的资源。当此字段未设置(即设置为空字符串)时,隐含身份。未设置的行为会随着时间的推移而发生变化,并可能发生变化。即使默认情况下启用了加密,未设置的含义也可能会根据最佳实践的变化而更改为不同的加密类型。启用加密后,平台附带的所有敏感资源都会被加密。此敏感资源列表会随着时间的推移而发生变化,并可能发生变化。当前权威列表为:1. secrets 2. configmaps 3. routes.route.openshift.io 4. oauthaccesstokens.oauth.openshift.io 5. oauthauthorizetokens.oauth.openshift.io

.spec.servingCerts

描述

servingCert 是用于服务安全流量的 TLS 证书信息。如果未指定,则操作员管理的证书将用于服务安全流量。

类型

对象

属性 类型 描述

namedCertificates

数组

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

namedCertificates[]

对象

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

.spec.servingCerts.namedCertificates

描述

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

类型

数组

.spec.servingCerts.namedCertificates[]

描述

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

类型

对象

属性 类型 描述

names

数组 (字符串)

names 是应使用此证书提供安全流量的显式 DNS 名称(允许前导通配符)的可选列表。如果未提供任何名称,则将从证书中提取隐式名称。精确名称优先于通配符名称。此处定义的显式名称优先于提取的隐式名称。

servingCertificate

对象

servingCertificate 引用包含用于提供安全流量的 TLS 证书信息的 kubernetes.io/tls 类型密钥。该密钥必须存在于 openshift-config 命名空间中,并包含以下必需字段:- Secret.Data["tls.key"] - TLS 私钥。- Secret.Data["tls.crt"] - TLS 证书。

.spec.servingCerts.namedCertificates[].servingCertificate

描述

servingCertificate 引用包含用于提供安全流量的 TLS 证书信息的 kubernetes.io/tls 类型密钥。该密钥必须存在于 openshift-config 命名空间中,并包含以下必需字段:- Secret.Data["tls.key"] - TLS 私钥。- Secret.Data["tls.crt"] - TLS 证书。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

name 是引用的密钥的 metadata.name。

.spec.tlsSecurityProfile

描述

tlsSecurityProfile 指定外部公开服务器的 TLS 连接设置。如果未设置,则选择默认值(在版本之间可能会更改)。请注意,目前仅支持旧版、中间版和自定义配置文件,并且最大可用的 minTLSVersion 为 VersionTLS12。

类型

对象

属性 类型 描述

custom

``

custom 是用户定义的 TLS 安全配置文件。使用自定义配置文件时要格外小心,因为无效配置可能会造成灾难性后果。自定义配置文件示例如下所示:ciphers: - ECDHE-ECDSA-CHACHA20-POLY1305 - ECDHE-RSA-CHACHA20-POLY1305 - ECDHE-RSA-AES128-GCM-SHA256 - ECDHE-ECDSA-AES128-GCM-SHA256 minTLSVersion: VersionTLS11

intermediate

``

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

``

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

``

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

字符串

type 是 Old、Intermediate、Modern 或 Custom 之一。Custom 提供了指定单个 TLS 安全配置文件参数的能力。Old、Intermediate 和 Modern 是基于以下内容的 TLS 安全配置文件:https://wiki.mozilla.org/Security/Server_Side_TLS#Recommended_configurations 这些配置文件是基于意图的,因此随着新密码的发展和发现现有密码不安全,它们可能会随着时间的推移而发生变化。根据进程可用的密码,列表可能会减少。请注意,目前不支持 Modern 配置文件,因为它尚未被常用软件库广泛采用。

.status

描述

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

类型

对象

API 端点

提供以下 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 的状态

/apis/config.openshift.io/v1/apiservers

HTTP 方法

DELETE

描述

删除 APIServer 集合

表 1. HTTP 响应
HTTP 代码 响应正文

200 - OK

Status 模式

401 - 未授权

HTTP 方法

GET

描述

列出 APIServer 类型的对象

表 2. HTTP 响应
HTTP 代码 响应正文

200 - OK

APIServerList 模式

401 - 未授权

HTTP 方法

POST

描述

创建 APIServer

表 3. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的所有重复字段,只保留最后一个。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为从对象中删除的每个未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将导致请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 4. 请求体参数
参数 类型 描述

body

APIServer 模式

表 5. HTTP 响应
HTTP 代码 响应正文

200 - OK

APIServer 模式

201 - 已创建

APIServer 模式

202 - 已接受

APIServer 模式

401 - 未授权

/apis/config.openshift.io/v1/apiservers/{name}

表 6. 全局路径参数
参数 类型 描述

name

字符串

APIServer 的名称

HTTP 方法

DELETE

描述

删除 APIServer

表 7. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

表 8. HTTP 响应
HTTP 代码 响应正文

200 - OK

Status 模式

202 - 已接受

Status 模式

401 - 未授权

HTTP 方法

GET

描述

读取指定的 APIServer

表 9. HTTP 响应
HTTP 代码 响应正文

200 - OK

APIServer 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 APIServer

表 10. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的所有重复字段,只保留最后一个。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为从对象中删除的每个未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将导致请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 11. HTTP 响应
HTTP 代码 响应正文

200 - OK

APIServer 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 APIServer

表 12. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的所有重复字段,只保留最后一个。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为从对象中删除的每个未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将导致请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 13. 请求体参数
参数 类型 描述

body

APIServer 模式

表 14. HTTP 响应
HTTP 代码 响应正文

200 - OK

APIServer 模式

201 - 已创建

APIServer 模式

401 - 未授权

/apis/config.openshift.io/v1/apiservers/{name}/status

表 15. 全局路径参数
参数 类型 描述

name

字符串

APIServer 的名称

HTTP 方法

GET

描述

读取指定的 APIServer 的状态

表 16. HTTP 响应
HTTP 代码 响应正文

200 - OK

APIServer 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 APIServer 的状态

表 17. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的所有重复字段,只保留最后一个。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为从对象中删除的每个未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将导致请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 18. HTTP 响应
HTTP 代码 响应正文

200 - OK

APIServer 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 APIServer 的状态

表 19. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的所有重复字段,只保留最后一个。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为从对象中删除的每个未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将导致请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 20. 请求体参数
参数 类型 描述

body

APIServer 模式

表 21. HTTP 响应
HTTP 代码 响应正文

200 - OK

APIServer 模式

201 - 已创建

APIServer 模式

401 - 未授权