Docker有一种机制可以从远程存储中检索Docker注册表密码,而不仅仅是将它们存储在配置文件中 - 这种机制称为凭据存储。 它还具有类似的机制,用于检索特定注册表的密码,称为凭据助手。
基本上,它涉及在
我无法使Kubernetes kubelet使用此凭据存储。它似乎只是忽略它,当Kubernetes尝试从私有注册表下载时,我会收到“没有基本身份验证凭据”的错误。如果我只有一个包含用户名/密码的
Kubernetes是否支持Docker凭据存储/凭据助手?如果支持,我该如何让它们工作?
供参考,kubelet通过
基本上,它涉及在
~/.docker/config.json
中定义一个值,该值被解释为可执行文件的名称。{
"credsStore": "osxkeychain"
}
credsStore
键的值具有前缀docker-credential-
,如果该可执行文件(例如docker-credential-osxkeychain
)存在于路径中,则该可执行文件将被执行,并期望将用户名和密码回显到stdout
,Docker将使用它来登录到私有注册表。这个想法是,可执行文件会联系存储库并为您检索密码,因此您不必在集群中留下许多带有编码的用户名/密码的文件。我无法使Kubernetes kubelet使用此凭据存储。它似乎只是忽略它,当Kubernetes尝试从私有注册表下载时,我会收到“没有基本身份验证凭据”的错误。如果我只有一个包含用户名/密码的
config.json
文件,则kubelet可以正常工作。Kubernetes是否支持Docker凭据存储/凭据助手?如果支持,我该如何让它们工作?
供参考,kubelet通过
systemd
运行,凭证存储可执行文件位于路径上,config.json
文件正在被读取。
imagePullSecrets
机制意味着你需要将你的密钥放在 etcd 中,这绝对不同于将它们放在企业级密钥保险库中。我也不明白 Kubelet 如何依靠你所描述的机制来访问其基础设施容器,当它启动集群时。 - John