Kubelet 凭证提供程序 (v1)

资源类型

CredentialProviderRequest

CredentialProviderRequest 包含 kubelet 需要进行身份验证的镜像。Kubelet 将通过 stdin 将此请求对象传递给插件。通常,插件应优先使用与它们收到的相同的 apiVersion 进行响应。

字段描述
apiVersion
string
credentialprovider.kubelet.k8s.io/v1
kind
string
CredentialProviderRequest
image [必需]
string

image 是凭据提供程序插件请求中正在拉取的容器镜像。插件可以选择性地解析该镜像以提取获取凭据所需的任何信息。

serviceAccountToken [必需]
string

serviceAccountToken 是绑定到正在拉取镜像的 Pod 的服务账号令牌。仅当在 kubelet 的凭据提供程序配置中配置了 tokenAttributes.serviceAccountTokenAudience 字段时,此令牌才会发送给插件。

serviceAccountAnnotations [必需]
map[string]string

serviceAccountAnnotations 是绑定到正在拉取镜像的 Pod 的服务账号上的注解的映射。需要传递给插件的服务账号中的注解列表在 kubelet 的凭据提供程序配置中进行配置。

CredentialProviderResponse

CredentialProviderResponse 包含 kubelet 应为原始请求中提供的指定镜像使用的凭据。Kubelet 将通过 stdout 从插件读取响应。此响应应设置为与 CredentialProviderRequest 相同的 apiVersion。

字段描述
apiVersion
string
credentialprovider.kubelet.k8s.io/v1
kind
string
CredentialProviderResponse
cacheKeyType [必需]
PluginCacheKeyType

cacheKeyType 指示根据请求中提供的镜像要使用的缓存键类型。缓存键类型有三个有效值:Image、Registry 和 Global。如果指定了无效值,kubelet 将不会使用该响应。

cacheDuration
meta/v1.Duration

cacheDuration 指示所提供凭据应缓存的时长。kubelet 将使用此字段设置 AuthConfig 中凭据的内存缓存时长。如果为 null,kubelet 将使用 CredentialProviderConfig 中提供的 defaultCacheDuration。如果设置为 0,kubelet 将不会缓存所提供的 AuthConfig。

auth
map[string]AuthConfig

auth 是一个包含传递给 kubelet 的身份验证信息的映射。每个键都是一个匹配的镜像字符串(下文将详细介绍)。相应的 authConfig 值应对所有与此键匹配的镜像有效。如果无法为请求的镜像返回有效凭据,插件应将此字段设置为 null。

映射中的每个键都是一个模式,可以可选地包含端口和路径。可以在域名中使用通配符(glob),但不能在端口或路径中使用。支持将通配符用作子域名,如 “*.k8s.io” 或 “k8s.*.io”,以及顶级域名,如 “k8s.*”。还支持匹配部分子域名,如 “app*.k8s.io”。每个通配符只能匹配一个子域名段,所以 *.io 不匹配 *.k8s.io。

当以下所有条件都为真时,kubelet 会将镜像与键进行匹配:

  • 两者包含相同数量的域部分,并且每个部分都匹配。
  • imageMatch 的 URL 路径必须是目标镜像 URL 路径的 a prefix。
  • 如果 imageMatch 包含端口,则端口也必须与镜像中的端口匹配。

当返回多个键时,kubelet 将按逆序遍历所有键,以便

  • 具有相同前缀的较长键排在较短键之前
  • 具有相同前缀的非通配符键排在通配符键之前。

对于任何给定的匹配,kubelet 将尝试使用提供的凭据进行镜像拉取,在第一次成功通过身份验证的拉取后停止。

键示例

  • 123456789.dkr.ecr.us-east-1.amazonaws.com
  • *.azurecr.io
  • gcr.io
  • *.*.registry.io
  • registry.io:8080/path

AuthConfig

出现在

AuthConfig 包含容器仓库的身份验证信息。目前仅支持基于用户名/密码的身份验证,但将来可能会添加更多身份验证机制。

字段描述
username [必需]
string

username 是用于向容器仓库进行身份验证的用户名。空用户名是有效的。

password [必需]
string

password 是用于向容器仓库进行身份验证的密码。空密码是有效的。

PluginCacheKeyType

(string 的别名)

出现在

本页面是自动生成的。

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

最后修改于 2025 年 5 月 9 日上午 11:36 PST:修复配置 API 参考 (98329b37c4)