我有一个私人码头回购和一堆图像。我使用Helm将它们部署到Kubernetes集群中。
Helm values.yaml包含存储库凭据:
image:
repository: <repo>
tag: <version tag>
pullPolicy: IfNotPresent
imageCredentials:
registry: <repo>
username: <username>
password: <pw>在完成舵机安装之后
安装myhelmchart -值values.yaml --版本
吊舱的状态是Init:ErrImagePull。kubectl描述的吊舱给出了以下错误:
未能提取图像" image :tag":rpc错误: code =未知desc =来自守护进程的错误响应:获取图像/清单/版本:未经授权:所需身份验证
发布于 2018-05-02 14:07:26
这取决于您的舵机图表的输出。您可以使用helm template查看生成的kubernetes资源,而无需实际部署它。使用来自专用码头注册中心的图像可分为两个步骤:
kubernetes.io/dockerconfigjson或kubernetes.io/dockercfg。
如何使用helm中的模板创建此模板,将介绍这里。Pod资源/模板:
spec:
containers:
- name: some-pod
image: <image>
imagePullSecrets:
- name: <name-of your secret>您可以首先手工构建资源,而不必使用舵机。这有助于验证资源本身是否正确。然后,您可以调整helm模板,以输出给定值的正确资源。
发布于 2018-06-06 06:50:11
imageCredentials需要在根级,如下所示:
image:
repository: <repo>
tag: <version tag>
pullPolicy: IfNotPresent
imageCredentials:
registry: <repo>
username: <username>
password: <pw>因为
{{- define "imagePullSecret" }}
{{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}}" .Values.imageCredentials.registry (printf "%s:%s" .Values.imageCredentials.username .Values.imageCredentials.password | b64enc) | b64enc }}
{{- end }}引用.Values.imageCredentials.*而不是.Values.image.imageCredentials.*。
另外,您还需要添加
imagePullSecrets:
- name: {{ .Values.imageCredentials.name }}从私有注册表中提取映像的模板(例如pod或部署)。由于引用了.Values.imageCredentials.name (它不是在代码片段中定义的),您需要添加它,如下所示:
image:
repository: <repo>
tag: <version tag>
pullPolicy: IfNotPresent
imageCredentials:
name: <registry_name>_credentials
registry: <repo>
username: <username>
password: <pw>https://stackoverflow.com/questions/49669077
复制相似问题