如何解决使用来自本地港口的图像创建舵图
我创建了一个 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 中将我的本地港口注册为 repo?
- 我的本地港口被视为私人或公共存储库吗?
- 我应该怎么做才能让我的图表从我的本地港口存储库中提取图像?
解决方法
尝试创建秘密并遵循此 discussion,但失败了。直到:
我使用 kubectl describe
来检查我的 Pod 发生了什么。原来由于证书是由未知机构签署的,所以它无法拉取图像。
在 reddit 中找到了这个讨论,表明 minikube 需要在其自己的目录中拥有一份证书副本。提供证书并重新启动 minikube 后,它可以正常工作。
# create the dir if it is not exist
mkdir -p ~/.minikube/files/etc/ssl/certs
# copy the cert
cp ~/your.crt ~/.minikube/files/etc/ssl/certs/your-crt.pem
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。