Kubelet 配置 (v1alpha1)

资源类型

CredentialProviderConfig

CredentialProviderConfig 是包含每个 exec 凭证提供商信息的配置。Kubelet 从磁盘读取此配置,并按 CredentialProvider 类型指定启用每个提供商。

字段描述
apiVersion
string
kubelet.config.k8s.io/v1alpha1
kind
string
CredentialProviderConfig
providers [必需]
[]CredentialProvider

providers 是 kubelet 将启用的凭证提供商插件列表。多个提供商可能匹配单个镜像,在这种情况下,所有提供商的凭证都将返回给 kubelet。如果为单个镜像调用了多个提供商,则结果会合并。如果提供商返回重叠的认证密钥,则首先尝试列表中较早的提供商的值。

ImagePullIntent

ImagePullIntent 是 kubelet 尝试拉取镜像的记录。

字段描述
apiVersion
string
kubelet.config.k8s.io/v1alpha1
kind
string
ImagePullIntent
image [必填]
string

Image 是 Container 的 image 字段中的镜像规格。文件名是该值的 SHA-256 哈希值。这是为了避免文件名中不安全的字符,例如 ':' 和 '/'。

ImagePulledRecord

ImagePullRecord 是 kubelet 拉取的镜像记录。

如果 kubernetesSecrets 字段中没有记录,并且 nodeWideCredentialsanonymous 都为 false,则下次请求此记录所代表的镜像时,必须重新检查凭证。

字段描述
apiVersion
string
kubelet.config.k8s.io/v1alpha1
kind
string
ImagePulledRecord
lastUpdatedTime [必填]
meta/v1.Time

LastUpdatedTime 是此记录最后更新的时间。

imageRef [必填]
string

ImageRef 是从 CRI 收到的此文件所代表的镜像的引用。文件名是该值的 SHA-256 哈希值。这是为了避免文件名中不安全的字符,例如 ':' 和 '/'。

credentialMapping [必填]
map[string]ImagePullCredentials

CredentialMapping 将 image 映射到其先前拉取的凭证集。此处的 image 是 pod 的 container image 字段的内容,已移除其标签/摘要。

示例:Container 请求 hello-world:latest@sha256:91fb4b041da273d5a3273b6d587d62d518300a6ad268b28628f74997b93171b2 镜像:“credentialMapping”:{ “hello-world”:{ “nodePodsAccessible”:true } }

CredentialProvider

出现在

CredentialProvider 代表一个由 kubelet 调用的 exec 插件。仅当正在拉取的镜像与插件处理的镜像匹配时(请参阅 matchImages),才会调用该插件。

字段描述
name [必填]
string

name 是凭证提供商的必需名称。它必须与 kubelet 看到的提供商可执行文件的名称匹配。该可执行文件必须位于 kubelet 的 bin 目录中(由 --image-credential-provider-bin-dir 标志设置)。所有提供商的名称必须唯一。

matchImages [必填]
[]string

matchImages 是一个必需的字符串列表,用于匹配镜像以确定是否应调用此提供商。如果其中一个字符串与 kubelet 请求的镜像匹配,则会调用该插件,并有机会提供凭证。镜像应包含注册表域和 URL 路径。

matchImages 中的每个条目都是一个模式,可以选择性地包含端口和路径。通配符 (*) 可用于域名,但不能用于端口或路径。通配符支持子域名,例如 *.k8s.iok8s.*.io,以及顶级域名,例如 k8s.*。还支持匹配部分子域名,例如 app*.k8s.io。每个通配符只能匹配一个子域名段,因此 *.io 不匹配 *.k8s.io

当以下所有条件都满足时,镜像与 matchImage 之间存在匹配:

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

matchImages 的示例值

  • 123456789.dkr.ecr.us-east-1.amazonaws.com
  • *.azurecr.io
  • gcr.io
  • *.*.registry.io
  • registry.io:8080/path
defaultCacheDuration [必填]
meta/v1.Duration

defaultCacheDuration 是插件在内存中缓存凭证的默认持续时间,如果插件响应中未提供缓存持续时间。此字段是必需的。

apiVersion [必填]
string

exec CredentialProviderRequest 的必需输入版本。返回的 CredentialProviderResponse 必须使用与输入相同的编码版本。当前支持的值是

  • credentialprovider.kubelet.k8s.io/v1alpha1
args
[]string

执行命令时要传递的参数。

env
[]ExecEnvVar

Env 定义了要暴露给进程的附加环境变量。这些变量与主机的环境变量以及 client-go 用于将参数传递给插件的变量合并。

ExecEnvVar

出现在

ExecEnvVar 用于在执行基于 exec 的凭证插件时设置环境变量。

字段描述
name [必填]
string
未提供描述。
value [必填]
string
未提供描述。

ImagePullCredentials

出现在

ImagePullCredentials 描述可用于拉取镜像的凭证。

字段描述
kubernetesSecrets
[]ImagePullSecret

KuberneteSecretCoordinates 是用于拉取镜像的所有 kubernetes secrets 的坐标索引。

nodePodsAccessible
bool

NodePodsAccessible 是一个标志,表示拉取凭证可被节点上的所有 pod 访问,或者拉取不需要凭证。

如果为 true,则与 kubernetesSecrets 字段互斥。

ImagePullSecret

出现在

ImagePullSecret 是 Kubernetes secret 对象坐标的表示,以及该对象包含的拉取 secret 凭证的凭证哈希。

字段描述
uid [必填]
string
未提供描述。
namespace [必填]
string
未提供描述。
name [必填]
string
未提供描述。
credentialHash [必填]
string

CredentialHash 是通过哈希指定 UID/Namespace/Name 坐标的 secret 的镜像拉取凭证内容而获得的 SHA-256 值。

本页面是自动生成的。

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

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