如何解决Helm 图中依赖项的私有 Docker 注册表
我有一个使用 Nginx 图表作为依赖项的 Helm 图表。是否可以指定不同的 repo 来拉取镜像?
我的依赖:
dependencies:
- name: nginx-ingress
version: "3.15.2"
repository: "https://kubernetes.github.io/ingress-nginx"
condition: master.ingress.create_controller
tags:
- ingressController
我想要实现的是让 k8s 从私有 Docker 注册表而不是 Docker Hub 拉取镜像。 我检查了 Helm 文档,但找不到相应的参数。我知道我可以下载图表并更改里面的值,但这是我的计划 B。
解决方法
这只有在图表可以选择的情况下才有可能。
如果您查看 the chart's values.yaml
file,您可以看到它有设置:
controller:
image:
repository: k8s.gcr.io/ingress-nginx/controller
并且,相应地在 the Deployment template 中:
{{- with .Values.controller.image }}
image: "{{.repository}}:{{ .tag }}{{- if (.digest) -}} @{{.digest}} {{- end -}}"
{{- end }}
因此,当您部署图表时,您可以添加到您的部署时设置
nginx-ingress:
controller:
image:
repository: docker-mirror.example.com/k8s.gcr.io/ingress-nginx/controller
您也可以在父图表中默认设置。
不同的图表以不同的方式处理这个问题。例如,Bitnami charts 让您分别指定注册表和映像名称,并支持 global: { imageRegistry: ... }
选项。 (这只是通过字符串连接使用,因此如果您的本地注册表镜像中有路径前缀,则可以在其中包含这两个部分。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。