kubernetes - 如何从命令行传递 imagePullSecrets
问题描述
我正在使用 kubernetes 命令式方式而不是声明式方式。由于有很多参数会定期更改,并且无法每次都更新 yaml 文件。
为了创建部署,我们使用这个
kubectl create deployment nginx --image=nginx:1.7.1
这对于公共图像来说很好。但是对于证明图像,我们需要使用秘密传递凭证数据。如链接中的 如果它是 yaml 文件,我们将保留在文件下面的行中。
imagePullSecrets:
- name: regcred
但是,如何为以下类型的行传递这些数据。?
kubectl create deployment nginx --image=nginx:1.7.1
解决方案
这可能会帮助您:
如果 pod 没有设置 ServiceAccount,它会将 ServiceAccount 设置为默认值。它确保 pod 引用的 ServiceAccount 存在,否则拒绝它。如果 pod 不包含任何 ImagePullSecrets,则将 ServiceAccount 的 ImagePullSecrets 添加到 pod。
修补您使用的服务帐户并将 imagePullSecrets 设置为您选择的秘密。
kubectl patch serviceaccount <account> -p '{"imagePullSecrets": [{"name": "regcred"}]}'
您可能还会发现有趣的从私有注册表线程中提取时自动使用秘密。