客户端认证 (v1)

资源类型

ExecCredential

ExecCredential 用于 exec 插件向 HTTP 传输传递凭证。

字段描述
apiVersion
string
client.authentication.k8s.io/v1
kind
string
ExecCredential
spec [必需]
ExecCredentialSpec

Spec 包含由传输插件传递给插件的信息。

status
ExecCredentialStatus

Status 由插件填充,并包含传输插件应该用来联系 API 的凭证。

集群

出现在

Cluster 包含允许 exec 插件与正在进行身份验证的 kubernetes 集群通信的信息。

为了确保此结构包含与 kubernetes 集群通信所需的一切(就像通过 kubeconfig 进行通信一样),字段应该模仿 "k8s.io/client-go/tools/clientcmd/api/v1".Cluster,除了 CertificateAuthority,因为 CA 数据将始终作为字节传递给插件。

字段描述
server [必需]
string

Server 是 kubernetes 集群的地址 (https://hostname:port)。

tls-server-name
string

TLSServerName 将传递给服务器进行 SNI,并用于客户端检查服务器证书。如果 ServerName 为空,则使用用于联系服务器的主机名。

insecure-skip-tls-verify
bool

InsecureSkipTLSVerify 跳过对服务器证书的有效性检查。这将使您的 HTTPS 连接不安全。

certificate-authority-data
[]byte

CAData 包含 PEM 编码的证书颁发机构证书。如果为空,则应使用系统根证书。

proxy-url
string

ProxyURL 是将用于此集群所有请求的代理的 URL。

disable-compression
bool

DisableCompression 允许客户端选择退出服务器的所有响应压缩。当客户端-服务器网络带宽充足时,这有助于加快请求(特别是列表)的速度,方法是节省压缩(服务器端)和解压缩(客户端端)的时间:https://github.com/kubernetes/kubernetes/issues/112296。

config
k8s.io/apimachinery/pkg/runtime.RawExtension

Config 包含特定于 exec 插件的、与正在进行身份验证的集群相关的其他配置数据。

此数据源自 clientcmd Cluster 对象中的 extensions[client.authentication.k8s.io/exec] 字段

clusters

  • name: my-cluster cluster: ... extensions
    • name: client.authentication.k8s.io/exec # 为每个集群的 exec 配置保留的扩展名 extension: audience: 06e3fbd18de8 # 任意配置

在某些环境中,除了每个集群特定的细节(如 audience)外,用户配置对于许多集群(即调用此 exec 插件)来说可能完全相同。此字段允许直接在集群信息中指定每个集群的配置。不建议使用此字段存储敏感数据,因为 exec 插件的主要优点之一是无需将敏感数据直接存储在 kubeconfig 中。

ExecCredentialSpec

出现在

ExecCredentialSpec 包含传输插件提供的请求和运行时特定信息。

字段描述
cluster
集群

Cluster 包含允许 exec 插件与正在进行身份验证的 kubernetes 集群通信的信息。请注意,只有在 exec 提供程序配置中将 provideClusterInfo 设置为 true 时(即 ExecConfig.ProvideClusterInfo),Cluster 才不为 nil。

interactive [必需]
bool

Interactive 声明是否已将 stdin 传递给此 exec 插件。

ExecCredentialStatus

出现在

ExecCredentialStatus 包含供传输插件使用的凭证。

Token 和 ClientKeyData 是敏感字段。这些数据应仅在客户端和 exec 插件进程之间在内存中传输。Exec 插件本身应至少受到文件权限的保护。

字段描述
expirationTimestamp
meta/v1.Time

ExpirationTimestamp 指示提供的凭证过期的时间。

token [必填]
string

Token 是客户端用于请求身份验证的承载令牌。

clientCertificateData [必需]
string

PEM 编码的客户端 TLS 证书(包括中间证书,如果有)。

clientKeyData [必需]
string

上述证书的 PEM 编码私钥。

本页面是自动生成的。

如果你打算报告此页面存在的问题,请在问题描述中提及此页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。

最后修改于 2025 年 4 月 24 日上午 8:56 (PST): 更新 v1.33 的配置 API (2bdd42a2f3)