【发布时间】:2021-04-24 12:26:50
【问题描述】:
我创建了一个NestJs 应用程序,使用pkg 将其打包到一个bin 文件中,使用docker 映像对其进行容器化,并将其命名为projectABC。所有这些都部署在 Ubuntu20 中,bin 文件运行良好。
接下来,我想尝试harbor 存储库。在tutorial 之后,我使用此tut 创建了带有自签名证书的本地港口存储库。我正在使用minikube 在我的机器上部署harbor。
harbor启动后,我创建了一个名为“project”的项目,然后将projectABC图像推入其中,Project registry设置为Public。从docker login、docker tag 到docker push,一切都很好。测试新推送的镜像,我可以docker pull 并检查projectABC 是否按预期运行。
所以现在我想使用helm 图表进行部署。到目前为止,我已经成功登录注册表并推送了一个空图表项目。
helm create projectABC
export HELM_EXPERIMENTAL_OCI=1
helm chart save ./projectABC 192.168.1.69/project/ABC
helm registry login https://192.168.1.69 --insecure
helm chart push 192.168.1.69/project/ABC:0.0.1
然后我修改values.yaml 以从harbor repo 中提取图像
image:
repository: 192.168.1.69/project/ABC:0.0.1
pullPolicy: Always
但结果失败:
container in pod is waiting to start: trying and failing to pull image
所以我的问题:
- 如何在 helm 中将我的 local-harbor 注册为 repo?
- 我的本地港口是否被视为私人或公共回购?
- 我应该怎么做才能让我的图表从本地港口存储库中提取图像?
【问题讨论】:
-
我尝试使用
helm repo add local https://192.168.1.69/project --insecure-skip-tls-verify添加 repo,失败并显示错误消息:looks like "https://192.168.1.69/project" is not a valid chart repository or cannot be reached: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal string into Go value of type repo.IndexFile。使用 url 1.69/project/ABC 结果相同 -
如果您收到有关“容器中的容器...”的错误,那么所有 Helm 部件都是正确的;您的 Kubernetes 集群无法拉取映像。您是否需要对存储库进行身份验证?
-
@DavidMaze 通过身份验证您的意思是使用用户名:密码?我尝试创建秘密,因为 kubernetes 建议从私人回购中提取图像。但它并没有解决它。问题出在带有自签名证书的 minikube 上
标签: image kubernetes-helm minikube harbor