Kubelet CredentialProvider (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 中的凭据设置内存中缓存持续期。
如果为空,kubelet 将使用 CredentialProviderConfig 中提供的 defaultCacheDuration。
如果设置为 0,kubelet 将不再缓存提供的 AuthConfig。
|
auth
map[string]AuthConfig | auth 是一个映射,包含传递给 kubelet 的身份验证信息。
映射中每个键都是一个匹配镜像字符串(更多内容见下文)。
相应的 authConfig 值应该对匹配此键的所有镜像有效。
如果无法为请求的镜像返回有效凭据,则插件应将此字段设置为空。
映射中的每个主键都可以包含端口和路径。
域名中可以使用 Glob 通配,但不能在端口或路径中使用 Glob。
Glob 支持类似 *.k8s.io 或 k8s.*.io 这类子域以及 k8s.* 这类顶级域。
也支持匹配的部分子域,例如 app*.k8s.io。
每个 Glob 只能匹配一个子域段,因此 *.io 与 *.k8s.io 不匹配。 当满足以下所有条件时,kubelet 将根据主键来匹配镜像: - 两者都包含相同数量的域名部分,并且每个部分都匹配。
- imageMatch 的 URL 路径必须是目标镜像 URL 路径的前缀。
- 如果
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 的别名)
出现在: