使用本地港口的图像创建舵图

Create helm chart using image from local harbor

我创建了一个 NestJs 应用程序,使用 pkg 将其打包到 bin 文件中,使用 docker 图像将其容器化并将其命名为 projectABC。所有这些都部署在 Ubuntu20 中,bin 文件 运行 非常好。

接下来,我想试试harbor repository. Following the tutorial, i created local harbor repository with self-signed certificate with this tut。我正在使用 minikube 在我的机器上部署 harbor。

harbor 启动后,我创建了一个名为“project”的项目,然后将 projectABC 图像推送到其中,并将 Project registry 设置为 Public。从 docker logindocker tagdocker 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

所以我的问题:

  1. 如何在 helm 中将我的 local-harbor 注册为 repo?
  2. 我的本地港口是否被视为私人或 public 仓库?
  3. 我应该怎么做才能让我的图表从我的 local-harbor 存储库中提取图像?

试图创建秘密并遵循此 discussion,但失败了。直到:

我用 kubectl describe 来检查我的 pod 发生了什么。事实证明,由于证书是由未知机构签署的,因此无法拉取图像。

reddit 中发现这个讨论,显示 minikube 需要在其自己的目录中有一份证书副本。提供证书并重新启动 minikube 后,它可以正常工作。

source

# 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