kube-apiserver 配置 (v1alpha1)
包 v1alpha1 包含 API 的 v1alpha1 版本。
资源类型
- AdmissionConfiguration
- AuthenticationConfiguration
- AuthorizationConfiguration
- EgressSelectorConfiguration
- TracingConfiguration
TracingConfiguration    
出现在:
TracingConfiguration 为 OpenTelemetry 跟踪客户端提供了不同版本的配置。
| 字段 | 描述 | 
|---|---|
| endpointstring | 采集器的端点,此组件将向其报告跟踪信息。 连接不安全,目前不支持 TLS。 推荐不设置,端点为 otlp grpc 默认值 localhost:4317。 | 
| samplingRatePerMillionint32 | SamplingRatePerMillion 是每百万 span 中采集的样本数。 推荐不设置。如果不设置,采集器将继承其父级 span 的采样率,否则不进行采样。 | 
AdmissionConfiguration    
AdmissionConfiguration 为准入控制器提供版本化的配置信息。
| 字段 | 描述 | 
|---|---|
| apiVersionstring | apiserver.k8s.io/v1alpha1 | 
| kindstring | AdmissionConfiguration | 
| plugins[]AdmissionPluginConfiguration | 
   
    | 
AuthenticationConfiguration    
AuthenticationConfiguration 为身份认证提供版本化的配置。
| 字段 | 描述 | 
|---|---|
| apiVersionstring | apiserver.k8s.io/v1alpha1 | 
| kindstring | AuthenticationConfiguration | 
| jwt[必需][]JWTAuthenticator | jwt 是一个身份认证器列表,用于对使用符合 JWT 的令牌的 Kubernetes 用户进行身份认证。 身份认证器将尝试解析原始 ID 令牌,验证其是否由配置的发放者签名。用于验证签名的公钥是通过 OIDC 发现从颁发者的公开端点获取的。对于传入的令牌,将按照此列表中指定的顺序尝试每个 JWT 身份认证器。但是请注意,其他身份认证器可能会在 JWT 身份认证器之前或之后运行。JWT 身份认证器相对于其他身份认证器的具体位置在不同版本中既未定义也不稳定。由于每个 JWT 身份认证器必须具有唯一的颁发者 URL,因此最多只有一个 JWT 身份认证器会尝试基于密码学方法对对令牌进行合法性检查。 最小有效 JWT 负载必须包含以下声明: 
{
    "iss": "https://issuer.example.com",
    "aud": ["audience"],
    "exp": 1234567890,
    "<username claim>": "username"
}
 | 
| anonymous[必需]AnonymousAuthConfig | 
   
   如果设置了此字段,则不得设置  | 
AuthorizationConfiguration    
| 字段 | 描述 | 
|---|---|
| apiVersionstring | apiserver.k8s.io/v1alpha1 | 
| kindstring | AuthorizationConfiguration | 
| authorizers[必需][]AuthorizerConfiguration | 
   
   authorizers 是一个有序的鉴权器列表,用于对请求进行鉴权。
   这类似于 kube-apiserver  | 
EgressSelectorConfiguration    
EgressSelectorConfiguration 为 Egress 选择算符客户端提供版本化的配置选项。
| 字段 | 描述 | 
|---|---|
| apiVersionstring | apiserver.k8s.io/v1alpha1 | 
| kindstring | EgressSelectorConfiguration | 
| egressSelections[必需][]EgressSelection | 
   
    | 
TracingConfiguration    
TracingConfiguration 为跟踪客户端提供版本化的配置信息。
| 字段 | 描述 | 
|---|---|
| apiVersionstring | apiserver.k8s.io/v1alpha1 | 
| kindstring | TracingConfiguration | 
| TracingConfiguration[必需]TracingConfiguration | ( TracingConfiguration的成员嵌入到这种类型中。)嵌入组件配置中的跟踪配置结构体。 | 
AdmissionPluginConfiguration    
出现在:
AdmissionPluginConfiguration 为某个插件提供配置信息。
| 字段 | 描述 | 
|---|---|
| name[必需]string | 
   
    | 
| pathstring | 
   
    | 
| configurationk8s.io/apimachinery/pkg/runtime.Unknown | 
   
    | 
AnonymousAuthCondition    
出现在:
AnonymousAuthCondition 描述了应启用匿名身份认证的条件。
| 字段 | 描述 | 
|---|---|
| path[必需]string | 启用匿名身份认证的路径。 | 
AnonymousAuthConfig    
出现在:
AnonymousAuthConfig 为匿名身份认证器提供配置信息。
| 字段 | 描述 | 
|---|---|
| enabled[必需]bool | |
| conditions[必需][]AnonymousAuthCondition | 如果设置,只有在请求满足其中一个条件时才允许匿名身份认证。 | 
AudienceMatchPolicyType    
(string 类型的别名)
出现在:
AudienceMatchPolicyType 是 issuer.audienceMatchPolicy 合法值的集合
AuthorizerConfiguration    
出现在:
| 字段 | 描述 | 
|---|---|
| type[必需]string | type 指的是鉴权器的类型。 通用 API 服务器支持 "Webhook"。 其他 API 服务器可能支持其他授权者类型,如 Node、RBAC、ABAC 等。 | 
| name[必需]string | 
   
   name 是用于描述 webhook 的名称。
   此字段专为监控机制中的指标提供。
   注意:name 值必须是 DNS1123 标签,如  | 
| webhook[必需]WebhookConfiguration | webhook 定义 Webhook 鉴权器的配置。 当 type=Webhook 时必须定义。 当 type!=Webhook 时不得定义。 | 
ClaimMappings    
出现在:
ClaimMappings 为声明映射提供配置信息
| 字段 | 描述 | 
|---|---|
| username[必需]PrefixedClaimOrExpression | 
   
   username 表示用户名属性的一个选项。
   声明的值必须是单一字符串。
   与  
在基于标志的方法中, | 
| groupsPrefixedClaimOrExpression | 
   
   groups 表示 groups 属性的一个选项。
   其中 claim 字段的值必须是字符串或字符串数组。
   如果设置了  | 
| uidClaimOrExpression | 
   
   uid 表示 uid 属性的一个选项。
   其中的 claim 字段必须是一个字符串。
   如果设置了  | 
| extra[]ExtraMapping | extra 表示 extra 属性的一个选项。 expression 必须生成一个字符串或字符串数组值。 如果值为空,则不会存在 extra 映射。 硬编码的额外 key/value - key: "foo" valueExpression: "'bar'"这将导致一个额外的属性 - foo: ["bar"] 硬编码 key,value 从声明的值复制 - key: "foo" valueExpression: "claims.some_claim" 结果会是一个 extra 属性 - foo: [some_claim 的值] 硬编码 key,value 从声明的值派生 - key: "admin" valueExpression: '(has(claims.is_admin) && claims.is_admin) ? "true":""' 这将导致: 
 | 
ClaimOrExpression    
出现在:
ClaimOrExpression 为单个声明或表达式提供配置信息。
| 字段 | 描述 | 
|---|---|
| claimstring | claim 是要使用的 JWT 声明。 claim 或 expression 必须设置一个。 与 expression 互斥。 | 
| expressionstring | expression 表示将由 CEL 求值的表达式。 CEL 表达式可以访问令牌声明的内容,这些内容被组织成 CEL 变量: 
 关于 CEL 的文档:https://kubernetes.io/zh-cn/docs/reference/using-api/cel/ 与 claim 互斥。 | 
ClaimValidationRule    
出现在:
ClaimValidationRule 为单个声明验证规则提供配置信息。
| 字段 | 描述 | 
|---|---|
| claimstring | 
   
   claim 是所需要的声明的名称。
   与  | 
| requiredValuestring | 
   
   requiredValue 是声明中必须包含的值。
   与  | 
| expressionstring | expression 表示将由 CEL 求值的表达式。 必须生成一个布尔值。 CEL 表达式可以访问令牌声明的内容,这些内容被组织成 CEL 变量: 
 关于 CEL 的文档:https://kubernetes.io/zh-cn/docs/reference/using-api/cel/ 与 claim 和 requiredValue 互斥。 | 
| messagestring | message 自定义当 expression 返回 false 时的错误消息。 message 是一个文本字符串。 与 claim 和 requiredValue 互斥。 | 
Connection    
出现在:
Connection 提供某个出站选择客户端的配置信息。
| 字段 | 描述 | 
|---|---|
| proxyProtocol[必需]ProtocolType | 
   
    | 
| transportTransport | 
   
    | 
EgressSelection    
出现在:
EgressSelection 为某个出站选择客户端提供配置信息。
| 字段 | 描述 | 
|---|---|
| name[必需]string | 
   
   | 
| connection[必需]Connection | 
   
    | 
EgressSelectorType    
(string 的别名)
出现在:
EgressSelectorType 是一个指示符,表明应使用哪种出口选择器来发送流量。
ExtraMapping    
出现在:
ExtraMapping 为单个 extra 映射提供配置信息。
| 字段 | 描述 | 
|---|---|
| key[必需]string | 
   
   key 是用作 extra 属性键的字符串。
   key 必须是域前缀路径(例如  | 
| valueExpression[必需]string | valueExpression 是一个 CEL 表达式,用于提取 extra 中的属性值。 valueExpression 必须生成一个字符串或字符串数组值。 ""、[] 和 null 值被视为不存在 extra 映射。 字符串数组中包含的空字符串值将被过滤掉。 CEL 表达式可以访问令牌声明的内容,这些内容被组织成 CEL 变量: 
 关于 CEL 的文档:https://kubernetes.io/zh-cn/docs/reference/using-api/cel/ | 
Issuer    
出现在:
Issuer 为外部提供者的特定设置提供配置。
| 字段 | 描述 | 
|---|---|
| url[必需]string | url 指向颁发者 URL,格式为 https://url 或 https://url/path。 此 URL 必须与所提供的 JWT 中的 "iss" 声明以及从发现中返回的颁发者匹配。 与 --oidc-issuer-url 标志的值相同。 除非被 discoveryURL 覆盖,否则发现信息将从 "{url}/.well-known/openid-configuration" 获取。 在所有 JWT 身份认证器中必须唯一。 请注意,此网络连接不使用出站流量选择配置。 | 
| discoveryURLstring | discoveryURL(如果指定)会覆盖用于获取发现信息的 URL,而不是使用 "{url}/.well-known/openid-configuration"。 使用指定的确切值,因此如果需要,必须在 discoveryURL 中包含 "/.well-known/openid-configuration"。 所获取的发现信息中的 "issuer" 字段必须与 AuthenticationConfiguration 中的 "issuer.url" 字段匹配,并将用于检验所提供的 JWT 中的 "iss" 声明。 这适用于 well-known 和 jwks 端点托管在与颁发者不同的位置(例如在集群中本地托管)的场景。 示例: 发现 URL 是通过 Kubernetes 在命名空间 'oidc-namespace' 中的服务 'oidc' 公布的, 而访问 '/.well-known/openid-configuration' 可以获得发现信息。 discoveryURL: "https://oidc.oidc-namespace/.well-known/openid-configuration" certificateAuthority 用于验证 TLS 连接,叶证书上的主机名必须设置为 'oidc.oidc-namespace'。 
 
discoveryURL 必须与 url 不同。 在所有 JWT 身份认证器中必须唯一。 请注意,此网络连接不使用出站流量选择配置。 | 
| certificateAuthoritystring | certificateAuthority 包含 PEM 编码的证书颁发机构证书, 用于在获取发现信息时验证连接。 如果未设置,则使用系统验证器。 与 --oidc-ca-file 标志引用的文件内容相同。 | 
| audiences[必需][]string | audiences 是 JWT 必须签发给的可接受受众集。 所提供的 JWT 中的 "aud" 声明必须至少与其中一个条目匹配。 与 --oidc-client-id 标志的值相同(尽管此字段支持数组)。 必须为非空。 | 
| audienceMatchPolicyAudienceMatchPolicyType | audienceMatchPolicy 定义了如何使用 "audiences" 字段来匹配所提供的 JWT 中的 "aud" 声明。 允许的值有: 
 
 对于更精细的受众验证,请使用 claimValidationRules。 示例:claimValidationRule[].expression: 'sets.equivalent(claims.aud, ["bar", "foo", "baz"])' 以要求精确匹配。 | 
| egressSelectorTypeEgressSelectorType | 
 
 | 
JWTAuthenticator    
出现在:
JWTAuthenticator 为单个 JWT 身份认证器提供配置信息。
| 字段 | 描述 | 
|---|---|
| issuer[必需]Issuer | issuer 包含基本的 OIDC 提供者连接选项。 | 
| claimValidationRules[]ClaimValidationRule | claimValidationRules 是用于验证令牌声明以认证用户的规则。 | 
| claimMappings[必需]ClaimMappings | claimMappings 指向要视为用户属性的令牌声明。 | 
| userValidationRules[]UserValidationRule | 
   
   userValidationRules 是在完成身份认证之前应用于最终用户的规则。
   这些规则允许将不变量应用于传入的身份,例如禁止使用 Kubernetes 组件常用的  | 
PrefixedClaimOrExpression    
出现在:
PrefixedClaimOrExpression 为单个带前缀的声明或表达式提供配置。
| 字段 | 描述 | 
|---|---|
| claimstring | claim 是要使用的 JWT 声明。与 expression 互斥。 | 
| prefixstring | prefix 是添加到声明值前面的前缀,以防止与现有名称冲突。 如果设置了 claim,则需要设置 prefix,并且可以是空字符串。 与 expression 互斥。 | 
| expressionstring | expression 表示将由 CEL 评估的表达式。 CEL 表达式可以访问令牌声明的内容,这些内容被组织成 CEL 变量: 
 关于 CEL 的文档:https://kubernetes.io/zh-cn/docs/reference/using-api/cel/ 与 claim 和 prefix 互斥。 | 
ProtocolType    
(string 类型的别名)
出现在:
ProtocolType 是 connection.protocolType 的合法值集合。
TCPTransport    
出现在:
TCPTransport 提供使用 TCP 连接 konnectivity 服务器时需要的信息。
| 字段 | 描述 | 
|---|---|
| url[必需]string | 
   
    | 
| tlsConfigTLSConfig | 
   
    | 
TLSConfig    
出现在:
TLSConfig 为连接 konnectivity 服务器提供身份认证信息。仅用于 TCPTransport。
| 字段 | 描述 | 
|---|---|
| caBundlestring | 
   
    | 
| clientKeystring | 
    | 
| clientCertstring | 
   
    | 
Transport    
出现在:
Transport 定义联系 konnectivity 服务器时要使用的传输层配置。
| 字段 | 描述 | 
|---|---|
| tcpTCPTransport | 
   
    | 
| udsUDSTransport | 
   
    | 
UDSTransport    
出现在:
UDSTransport 设置通过 UDS 连接 konnectivity 服务器时需要的信息。
| 字段 | 描述 | 
|---|---|
| udsName[必需]string | 
   
    | 
UserValidationRule    
出现在:
UserValidationRule 为单个用户信息验证规则提供配置信息。
| 字段 | 描述 | 
|---|---|
| expression[必需]string | expression 表示将由 CEL 求值的表达式。 验证通过时必须返回 true。 CEL 表达式可以访问 UserInfo 的内容,这些内容被组织成 CEL 变量: 
 关于 CEL 的文档:https://kubernetes.io/zh-cn/docs/reference/using-api/cel/ | 
| messagestring | message 自定义当规则返回 false 时的错误消息。 message 是一个文本字符串。 | 
WebhookConfiguration    
出现在:
| 字段 | 描述 | 
|---|---|
| authorizedTTL[必需]meta/v1.Duration | 对来自 Webhook 鉴权组件的 “authorized” 响应的缓存时长。
   与设置  | 
| cacheAuthorizedRequestsbool | 
 | 
| unauthorizedTTL[Required]meta/v1.Duration | 对来自 Webhook 鉴权组件的 “unauthorized” 响应的缓存时长。
与设置  | 
| cacheUnauthorizedRequestsbool | 
 | 
| timeout[必需]meta/v1.Duration | Webhook 请求超时时间。允许的最大时间为 30 秒。 必需,没有默认值。 | 
| subjectAccessReviewVersion[必需]string | 要发送到 Webhook 并期望从 Webhook 获得的  | 
| matchConditionSubjectAccessReviewVersion[必需]string | 
   
    | 
| failurePolicy[必需]string | 控制当 Webhook 请求无法完成或返回格式错误的响应或计算 matchConditions 出现错误时的鉴权决定。 有效值: 
 | 
| connectionInfo[必需]WebhookConnectionInfo | 
   
    | 
| matchConditions[必需][]WebhookMatchCondition | 
 精确匹配逻辑如下(按顺序): 
 | 
WebhookConnectionInfo    
出现在:
| 字段 | 描述 | 
|---|---|
| type[必需]string | 控制 Webhook 如何与服务器通信。有效值: 
 | 
| kubeConfigFile[必需]string | 
   
   包含连接信息的 KubeConfig 文件的路径。
   如果  | 
WebhookMatchCondition    
出现在:
| 字段 | 描述 | 
|---|---|
| expression[必需]string | 表达式表示将由 CEL 求值的表达式。求值结果必须为布尔值。 CEL 表达式可以访问 v1 版本中的 SubjectAccessReview 的内容。 如果请求变量中 subjectAccessReviewVersion 指定的版本是 v1beta1, 在计算 CEL 表达式之前,内容将被转换为 v1 版本。 
 关于 CEL 文档:https://kubernetes.io/zh-cn/docs/reference/using-api/cel/ |