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