Jay*_*ayp 4 docker kubernetes kubernetes-helm
我有一个带有一堆映像的私有Docker存储库。我正在使用Helm将它们部署到Kubernetes集群中。
Helm values.yaml包含存储库凭证:
image:
repository: <repo>
tag: <version tag>
pullPolicy: IfNotPresent
imageCredentials:
registry: <repo>
username: <username>
password: <pw>
Run Code Online (Sandbox Code Playgroud)
完成头盔安装后
掌舵安装myhelmchart --values values.yaml --version
窗格的状态为Init:ErrImagePull。kubectl describe pods出现此错误:
无法提取图像“ image:tag”:rpc错误:代码=未知desc =来自守护程序的错误响应:获取[image] /清单/ [版本]:未授权:需要身份验证
小智 8
imageCredentials 需要位于根级别,如下所示:
image:
repository: <repo>
tag: <version tag>
pullPolicy: IfNotPresent
imageCredentials:
registry: <repo>
username: <username>
password: <pw>
Run Code Online (Sandbox Code Playgroud)
因为
{{- define "imagePullSecret" }}
{{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}}" .Values.imageCredentials.registry (printf "%s:%s" .Values.imageCredentials.username .Values.imageCredentials.password | b64enc) | b64enc }}
{{- end }}
Run Code Online (Sandbox Code Playgroud)
引用 .Values.imageCredentials.* 而不是 .Values.image.imageCredentials.*。
此外,您还需要添加
imagePullSecrets:
- name: {{ .Values.imageCredentials.name }}
Run Code Online (Sandbox Code Playgroud)
到从私有注册表中拉取镜像的模板(例如 pod 或部署)。由于引用了 .Values.imageCredentials.name,它没有在您的代码段中定义,您需要添加它,如下所示:
image:
repository: <repo>
tag: <version tag>
pullPolicy: IfNotPresent
imageCredentials:
name: <registry_name>_credentials
registry: <repo>
username: <username>
password: <pw>
Run Code Online (Sandbox Code Playgroud)
小智 6
这取决于舵图的输出。您可以helm template用来查看生成的kubernetes资源,而无需实际部署它。使用来自私有Docker注册表的映像可分为两个步骤:
请确保您有一个secret资源为私有资源库。请注意,此处的类型为kubernetes.io/dockerconfigjson或kubernetes.io/dockercfg。
Pod资源/模板:
spec:
containers:
- name: some-pod
image: <image>
imagePullSecrets:
- name: <name-of your secret>
Run Code Online (Sandbox Code Playgroud)
您可以先手动构建资源,而无需掌舵。这有助于验证资源本身是否正确。然后,您可以调整头盔模板以根据您的值输出正确的资源。
| 归档时间: |
|
| 查看次数: |
11441 次 |
| 最近记录: |