kube-apiserver 配置 (v1alpha1)
package v1alpha1 是 API 的 v1alpha1 版本。
资源类型
- AdmissionConfiguration
- AuthenticationConfiguration
- AuthorizationConfiguration
- EgressSelectorConfiguration
- TracingConfiguration
TracingConfiguration
出现在
TracingConfiguration 为 OpenTelemetry 追踪客户端提供带版本控制的配置。
字段 | 描述 |
---|---|
endpoint string | 此组件将向其报告追踪数据的收集器的 endpoint。连接是不安全的,目前不支持 TLS。建议保持未设置,endpoint 是 otlp grpc 的默认值,localhost:4317。 |
samplingRatePerMillion int32 | SamplingRatePerMillion 是每百万个 span 中收集的采样数。建议保持未设置。如果未设置,采样器将尊重其父 span 的采样率,但除此之外不会进行采样。 |
AdmissionConfiguration
AdmissionConfiguration 为准入控制器提供带版本控制的配置。
字段 | 描述 |
---|---|
apiVersion string | apiserver.k8s.io/v1alpha1 |
kind string | AdmissionConfiguration |
plugins []AdmissionPluginConfiguration | Plugins 允许为每个准入控制插件指定配置。 |
AuthenticationConfiguration
AuthenticationConfiguration 为身份认证提供带版本控制的配置。
字段 | 描述 |
---|---|
apiVersion string | apiserver.k8s.io/v1alpha1 |
kind string | AuthenticationConfiguration |
jwt [必需][]JWTAuthenticator | jwt 是一个身份认证器列表,用于使用符合 JWT 规范的令牌来认证 Kubernetes 用户。身份认证器将尝试解析原始 ID 令牌,并验证它是否由配置的颁发者签名。用于验证签名的公钥通过 OIDC 发现从颁发者的公共 endpoint 获取。对于传入的令牌,列表中的每个 JWT 身份认证器将按其指定的顺序尝试。但请注意,其他身份认证器可能会在 JWT 身份认证器之前或之后运行。JWT 身份认证器相对于其他身份认证器的具体位置既未定义也不稳定。由于每个 JWT 身份认证器必须具有唯一的颁发者 URL,因此最多只有一个 JWT 身份认证器会尝试加密验证令牌。 最小有效 JWT 载荷必须包含以下 Claim:{ "iss": "https://issuer.example.com", "aud": ["audience"], "exp": 1234567890, "": "username" } |
anonymous [必需]AnonymousAuthConfig | 如果存在,则不能设置 --anonymous-auth |
AuthorizationConfiguration
字段 | 描述 |
---|---|
apiVersion string | apiserver.k8s.io/v1alpha1 |
kind string | AuthorizationConfiguration |
authorizers [必需][]AuthorizerConfiguration | Authorizers 是一个有序的授权者列表,用于对请求进行授权。这与 kube-apiserver 的 --authorization-modes 标志类似,必须至少有一个。 |
EgressSelectorConfiguration
EgressSelectorConfiguration 为出口选择器客户端提供带版本控制的配置。
字段 | 描述 |
---|---|
apiVersion string | apiserver.k8s.io/v1alpha1 |
kind string | EgressSelectorConfiguration |
egressSelections [必需][]EgressSelection | connectionServices 包含一个出口选择器客户端配置列表 |
TracingConfiguration
TracingConfiguration 为追踪客户端提供带版本控制的配置。
字段 | 描述 |
---|---|
apiVersion string | apiserver.k8s.io/v1alpha1 |
kind string | TracingConfiguration |
TracingConfiguration [必需]TracingConfiguration | (TracingConfiguration 的成员被嵌入到此类型中。)嵌入组件配置追踪配置结构 |
AdmissionPluginConfiguration
出现在
AdmissionPluginConfiguration 为单个插件提供配置。
字段 | 描述 |
---|---|
name [必需]string | Name 是准入控制器的名称。它必须与注册的准入插件名称匹配。 |
path string | Path 是包含插件配置的配置文件的路径 |
configuration k8s.io/apimachinery/pkg/runtime.Unknown | Configuration 是一个嵌入式配置对象,用作插件的配置。如果存在,将代替配置文件的路径使用。 |
AnonymousAuthCondition
出现在
AnonymousAuthCondition 描述了应该启用匿名身份认证的条件。
字段 | 描述 |
---|---|
path [必需]string | 启用匿名身份认证的路径。 |
AnonymousAuthConfig
出现在
AnonymousAuthConfig 为匿名身份认证器提供配置。
字段 | 描述 |
---|---|
enabled [必需]bool | 未提供描述。 |
conditions [必需][]AnonymousAuthCondition | 如果设置,只有当请求满足其中一个条件时,才允许匿名身份认证。 |
AudienceMatchPolicyType
(string
的别名)
出现在
AudienceMatchPolicyType 是一组 issuer.audienceMatchPolicy 的有效值
AuthorizerConfiguration
出现在
字段 | 描述 |
---|---|
type [必需]string | Type 指授权者的类型。“Webhook” 在通用 API 服务器中受支持。其他 API 服务器可能支持额外的授权者类型,如 Node、RBAC、ABAC 等。 |
name [必需]string | 用于描述 Webhook 的名称。这在用于指标的监控机制中显式使用。注意:名称必须是 DNS1123 Label,如 |
webhook [必需]WebhookConfiguration | Webhook 定义了 Webhook 授权器的配置。当 Type=Webhook 时必须定义,当 Type!=Webhook 时不能定义。 |
ClaimMappings
出现在
ClaimMappings 提供 Claim 映射的配置
字段 | 描述 |
---|---|
username [必需]PrefixedClaimOrExpression | username 表示 username 属性的一个选项。Claim 的值必须是一个单一字符串。与 --oidc-username-claim 和 --oidc-username-prefix 标志相同。如果设置了 username.expression,则表达式必须生成一个字符串值。如果 username.expression 使用 'claims.email',则必须在 username.expression 或 extra[].valueExpression 或 claimValidationRules[].expression 中使用 'claims.email_verified'。一个与当 username.claim 设置为 'email' 时自动应用的验证相匹配的 Claim 验证规则表达式示例是 'claims.?email_verified.orValue(true)'。 在基于标志的方法中,--oidc-username-claim 和 --oidc-username-prefix 是可选的。如果未设置 --oidc-username-claim,默认值为 "sub"。对于认证配置,Claim 或 Prefix 没有默认值。Claim 和 Prefix 必须显式设置。对于 Claim,如果在使用旧标志方法时未设置 --oidc-username-claim,请在认证配置中配置 username.claim="sub"。对于 Prefix:(1) --oidc-username-prefix="-",未向用户名添加前缀。对于使用认证配置实现相同的行为,请设置 username.prefix=""。(2) --oidc-username-prefix="" 且 --oidc-username-claim != "email",前缀为 "<--oidc-issuer-url 的值>#"。对于使用认证配置实现相同的行为,请设置 username.prefix="#"。(3) --oidc-username-prefix=""。对于使用认证配置实现相同的行为,请设置 username.prefix=""。 |
groups PrefixedClaimOrExpression | groups 表示 groups 属性的一个选项。Claim 的值必须是字符串或字符串数组 Claim。如果设置了 groups.claim,则必须指定前缀(并且可以是空字符串)。如果设置了 groups.expression,则表达式必须生成字符串或字符串数组值。""、[] 和 null 值被视为组映射不存在。 |
uid ClaimOrExpression | uid 表示 uid 属性的一个选项。Claim 必须是单个字符串 Claim。如果设置了 uid.expression,则表达式必须生成字符串值。 |
extra []ExtraMapping | extra 表示 extra 属性的一个选项。表达式必须生成字符串或字符串数组值。如果值为空,则 extra 映射将不存在。 硬编码的 extra 键/值
硬编码的键,值复制 Claim 值
硬编码的键,值派生自 Claim 值
|
ClaimOrExpression
出现在
ClaimOrExpression 为单个 Claim 或表达式提供配置。
字段 | 描述 |
---|---|
claim string | claim 是要使用的 JWT Claim。必须设置 claim 或 expression 之一。与 expression 互斥。 |
expression string | expression 表示将由 CEL 评估的表达式。 CEL 表达式可以访问令牌 Claim 的内容,组织成 CEL 变量
CEL 文档:https://kubernetes.ac.cn/docs/reference/using-api/cel/ 与 claim 互斥。 |
ClaimValidationRule
出现在
ClaimValidationRule 为单个 Claim 验证规则提供配置。
字段 | 描述 |
---|---|
claim string | claim 是必需 Claim 的名称。与 --oidc-required-claim 标志相同。只支持字符串 Claim 键。与 expression 和 message 互斥。 |
requiredValue string | requiredValue 是必需 Claim 的值。与 --oidc-required-claim 标志相同。只支持字符串 Claim 值。如果设置了 claim 且未设置 requiredValue,则 Claim 必须存在且其值设置为空字符串。与 expression 和 message 互斥。 |
expression string | expression 表示将由 CEL 评估的表达式。必须生成布尔值。 CEL 表达式可以访问令牌 Claim 的内容,组织成 CEL 变量
CEL 文档:https://kubernetes.ac.cn/docs/reference/using-api/cel/ 与 claim 和 requiredValue 互斥。 |
message string | message 自定义当 expression 返回 false 时返回的错误消息。message 是字面量字符串。与 claim 和 requiredValue 互斥。 |
Connection
出现在
Connection 为单个出口选择客户端提供配置。
字段 | 描述 |
---|---|
proxyProtocol [必需]ProtocolType | Protocol 是客户端连接到 konnectivity 服务器使用的协议。 |
transport Transport | Transport 定义了我们用于拨号到 konnectivity 服务器的传输配置。如果 ProxyProtocol 是 HTTPConnect 或 GRPC,则此字段为必需。 |
EgressSelection
出现在
EgressSelection 为单个出口选择客户端提供配置。
字段 | 描述 |
---|---|
name [必需]string | name 是出口选择的名称。当前支持的值为 "controlplane", "master", "etcd" 和 "cluster"。已弃用 "master" 出口选择器,推荐使用 "controlplane"。 |
connection [必需]Connection | connection 是用于配置出口选择的精确信息 |
ExtraMapping
出现在
ExtraMapping 为单个 extra 映射提供配置。
字段 | 描述 |
---|---|
key [必需]string | key 是用作 extra 属性键的字符串。key 必须是域名-前缀路径(例如 example.org/foo)。第一个 "/" 之前的所有字符必须是符合 RFC 1123 定义的有效子域。第一个 "/" 之后的所有字符必须是符合 RFC 3986 定义的有效 HTTP Path 字符。key 必须是小写。必需且唯一。 |
valueExpression [必需]string | valueExpression 是用于提取 extra 属性值的 CEL 表达式。valueExpression 必须生成字符串或字符串数组值。""、[] 和 null 值被视为 extra 映射不存在。字符串数组中包含的空字符串值将被过滤掉。 CEL 表达式可以访问令牌 Claim 的内容,组织成 CEL 变量
CEL 文档:https://kubernetes.ac.cn/docs/reference/using-api/cel/ |
Issuer
出现在
Issuer 为外部提供商的特定设置提供配置。
字段 | 描述 |
---|---|
url [必需]string | url 指向颁发者 URL,格式为 https://url 或 https://url/path。这必须与提供的 JWT 中的 "iss" Claim 以及发现返回的颁发者匹配。与 --oidc-issuer-url 标志的值相同。除非被 discoveryURL 覆盖,否则发现信息将从 "{url}/.well-known/openid-configuration" 获取。在所有 JWT 身份认证器中必须是唯一的。请注意,此网络连接不使用出口选择配置。 |
discoveryURL string | 如果指定了 discoveryURL,它将覆盖用于获取发现信息的 URL,而不是使用 "{url}/.well-known/openid-configuration"。使用的是指定的确切值,因此如果需要,discoveryURL 必须包含 "/.well-known/openid-configuration"。 获取的发现信息中的 "issuer" 字段必须与 AuthenticationConfiguration 中的 "issuer.url" 字段匹配,并将用于验证提供的 JWT 中的 "iss" Claim。这适用于 well-known 和 jwks endpoint 托管在与颁发者不同位置(例如集群本地)的场景。 示例:通过 Kubernetes Service 'oidc' 在命名空间 'oidc-namespace' 中暴露的发现 URL,并且发现信息位于 '/.well-known/openid-configuration'。discoveryURL: "https://oidc.oidc-namespace/.well-known/openid-configuration" certificateAuthority 用于验证 TLS 连接,叶证书上的主机名必须设置为 'oidc.oidc-namespace'。 curl https://oidc.oidc-namespace/.well-known/openid-configuration (.discoveryURL 字段) { issuer: "https://oidc.example.com" (.url 字段) } discoveryURL 必须与 url 不同。在所有 JWT 身份认证器中必须是唯一的。请注意,此网络连接不使用出口选择配置。 |
certificateAuthority string | certificateAuthority 包含 PEM 编码的证书颁发机构证书,用于在获取发现信息时验证连接。如果未设置,则使用系统验证器。与 --oidc-ca-file 标志引用的文件内容相同。 |
audiences [必需][]string | audiences 是 JWT 必须颁发给的一组可接受的受众。提供的 JWT 中的 "aud" Claim 必须至少匹配其中一个条目。与 --oidc-client-id 标志的值相同(尽管此字段支持数组)。必需且非空。 |
audienceMatchPolicy AudienceMatchPolicyType | audienceMatchPolicy 定义了如何使用 "audiences" 字段匹配提供的 JWT 中的 "aud" Claim。允许的值为
对于更细致的受众验证,请使用 claimValidationRules。例如:claimValidationRule[].expression: 'sets.equivalent(claims.aud, ["bar", "foo", "baz"])' 以要求精确匹配。 |
JWTAuthenticator
出现在
JWTAuthenticator 为单个 JWT 身份认证器提供配置。
字段 | 描述 |
---|---|
issuer [必需]Issuer | issuer 包含基本的 OIDC 提供商连接选项。 |
claimValidationRules []ClaimValidationRule | claimValidationRules 是用于验证令牌 Claim 以认证用户的规则。 |
claimMappings [必需]ClaimMappings | claimMappings 指示令牌的 Claim 应被视为用户属性。 |
userValidationRules []UserValidationRule | userValidationRules 是在完成身份认证之前应用于最终用户的规则。这些规则允许对传入身份应用不变式,例如阻止使用 Kubernetes 组件常用的 system: 前缀。验证规则是逻辑 AND 的,所有规则都必须返回 true,验证才能通过。 |
PrefixedClaimOrExpression
出现在
PrefixedClaimOrExpression 为单个带前缀的 Claim 或表达式提供配置。
字段 | 描述 |
---|---|
claim string | claim 是要使用的 JWT Claim。与 expression 互斥。 |
prefix string | prefix 添加到 Claim 的值之前,以防止与现有名称冲突。如果设置了 claim,则必须设置 prefix(并且可以是空字符串)。与 expression 互斥。 |
expression string | expression 表示将由 CEL 评估的表达式。 CEL 表达式可以访问令牌 Claim 的内容,组织成 CEL 变量
CEL 文档:https://kubernetes.ac.cn/docs/reference/using-api/cel/ 与 claim 和 prefix 互斥。 |
ProtocolType
(string
的别名)
出现在
ProtocolType 是一组 Connection.ProtocolType 的有效值
TCPTransport
出现在
TCPTransport 提供通过 TCP 连接到 konnectivity 服务器的信息
字段 | 描述 |
---|---|
url [必需]string | URL 是要连接的 konnectivity 服务器的位置。例如,它可以是 "https://127.0.0.1:8131" |
tlsConfig TLSConfig | TLSConfig 是连接到 konnectivity 服务器时使用 TLS 所需的配置 |
TLSConfig
出现在
TLSConfig 提供连接到 konnectivity 服务器的身份认证信息。仅与 TCPTransport 一起使用。
字段 | 描述 |
---|---|
caBundle string | caBundle 是用于确定与 konnectivity 服务器信任关系的 CA 文件位置。如果 TCPTransport.URL 以 http:// 为前缀,则必须缺失/为空。如果缺失而 TCPTransport.URL 以 https:// 为前缀,则默认使用系统信任根证书。 |
clientKey string | clientKey 是用于与 konnectivity 服务器进行 mtls 握手时使用的客户端私钥的文件位置。如果 TCPTransport.URL 以 http:// 为前缀,则必须缺失/为空。如果 TCPTransport.URL 以 https:// 为前缀,则必须配置。 |
clientCert string | clientCert 是用于与 konnectivity 服务器进行 mtls 握手时使用的客户端证书的文件位置。如果 TCPTransport.URL 以 http:// 为前缀,则必须缺失/为空。如果 TCPTransport.URL 以 https:// 为前缀,则必须配置。 |
Transport
出现在
Transport 定义了我们用于拨号到 konnectivity 服务器的传输配置
字段 | 描述 |
---|---|
tcp TCPTransport | TCP 是通过 TCP 与 konnectivity 服务器通信的 TCP 配置。目前 TCP 传输不支持 GRPC 的 ProxyProtocol。需要至少设置 TCP 或 UDS 之一。 |
uds UDSTransport | UDS 是通过 UDS 与 konnectivity 服务器通信的 UDS 配置。需要至少设置 TCP 或 UDS 之一。 |
UDSTransport
出现在
UDSTransport 提供通过 UDS 连接到 konnectivity 服务器的信息
字段 | 描述 |
---|---|
udsName [必需]string | UDSName 是连接到 konnectivity 服务器的 Unix 域套接字的名称。这不使用 unix:// 前缀。(例如:/etc/srv/kubernetes/konnectivity-server/konnectivity-server.socket) |
UserValidationRule
出现在
UserValidationRule 为单个用户信息验证规则提供配置。
字段 | 描述 |
---|---|
expression [必需]string | expression 表示将由 CEL 评估的表达式。必须返回 true,验证才会通过。 CEL 表达式可以访问 UserInfo 的内容,组织成 CEL 变量
CEL 文档:https://kubernetes.ac.cn/docs/reference/using-api/cel/ |
message string | message 自定义当规则返回 false 时返回的错误消息。message 是字面量字符串。 |
WebhookConfiguration
出现在
字段 | 描述 |
---|---|
authorizedTTL [必需]meta/v1.Duration | 缓存 Webhook 授权者 'authorized' 响应的持续时间。与设置 |
unauthorizedTTL [必需]meta/v1.Duration | 缓存 Webhook 授权者 'unauthorized' 响应的持续时间。与设置 |
timeout [必需]meta/v1.Duration | Webhook 请求的超时时间。最大允许值为 30s。必需,无默认值。 |
subjectAccessReviewVersion [必需]string | 发送到 Webhook 并期望从 Webhook 返回的 authorization.k8s.io SubjectAccessReview 的 API 版本。与设置 |
matchConditionSubjectAccessReviewVersion [必需]string | MatchConditionSubjectAccessReviewVersion 指定 CEL 表达式评估所依据的 SubjectAccessReview 版本。有效值:v1。必需,无默认值。 |
failurePolicy [必需]string | 控制当 Webhook 请求未能完成、返回格式错误的响应或评估 matchConditions 时发生错误时的授权决策。有效值:
|
connectionInfo [必需]WebhookConnectionInfo | ConnectionInfo 定义了如何与 Webhook 通信 |
matchConditions [必需][]WebhookMatchCondition | matchConditions 是发送请求到此 Webhook 必须满足的条件列表。空的 matchConditions 列表匹配所有请求。最多允许 64 个匹配条件。 具体的匹配逻辑如下(按顺序):
|
WebhookConnectionInfo
出现在
字段 | 描述 |
---|---|
type [必需]string | 控制 Webhook 如何与服务器通信。有效值:
|
kubeConfigFile [必需]string | 连接信息所需的 KubeConfigFile 路径。如果 connectionInfo.Type 是 KubeConfig,则此字段为必需。 |
WebhookMatchCondition
出现在
字段 | 描述 |
---|---|
expression [必需]string | expression 表示将由 CEL 评估的表达式。必须评估为 bool。CEL 表达式可以访问 v1 版本的 SubjectAccessReview 内容。如果在请求变量中由 subjectAccessReviewVersion 指定的版本是 v1beta1,则在评估 CEL 表达式之前,内容将被转换为 v1 版本。
CEL 文档:https://kubernetes.ac.cn/docs/reference/using-api/cel/ |
本页面是自动生成的。
如果你打算报告本页面的问题,请在你的 Issue 描述中提及本页面是自动生成的。修复可能需要在 Kubernetes 项目中的其他地方进行。