Information in this document may be out of date

This document has an older update date than the original, so the information it contains may be out of date. If you're able to read English, see the English version for the most up-to-date information: Kubelet CredentialProvider (v1beta1)

Kubelet CredentialProvider (v1beta1)

资源类型

CredentialProviderRequest

CredentialProviderRequest 包含 kubelet 需要进行身份验证的镜像。 Kubelet 会通过标准输入将此请求对象传递给插件。一般来说,插件倾向于用它们所收到的相同的 apiVersion 来响应。

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

image 是容器镜像,作为凭据提供程序插件请求的一部分。 插件可以有选择地解析镜像以提取获取凭据所需的任何信息。

CredentialProviderResponse

CredentialProviderResponse 持有 kubelet 应用于原始请求中提供的指定镜像的凭据。 kubelet 将通过标准输出读取插件的响应。此响应的 apiVersion 值应设置为与 CredentialProviderRequest 中 apiVersion 值相同。

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

cacheKeyType 表明基于请求中所给镜像而要使用的缓存键类型。缓存键类型有三个有效值: Image、Registry 和 Global。如果指定了无效值,则 kubelet 不会使用该响应。

cacheDuration
meta/v1.Duration

cacheDuration 表示所提供的凭据应该被缓存的时间。kubelet 使用这个字段为 auth 中的凭据设置内存中数据的缓存时间。如果为空,kubelet 将使用 CredentialProviderConfig 中提供的 defaultCacheDuration。如果设置为 0,kubelet 将不会缓存所提供的 auth 数据。

auth
map[string]k8s.io/kubelet/pkg/apis/credentialprovider/v1beta1.AuthConfig

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

映射中每个键值都是一个正则表达式,可以选择包含端口和路径。 域名部分可以包含通配符,但在端口或路径中不能使用通配符。 支持通配符作为子域,如 *.k8s.iok8s.*.io,以及顶级域,如 k8s.*。 还支持匹配部分子域,如 app*.k8s.io。每个通配符只能匹配一个子域段, 因此 *.io 不匹配 *.k8s.io

当满足以下所有条件时,kubelet 会将镜像与键值匹配:

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

当返回多个键(key)时,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 数据类型的别名)

出现在: