我有一台 CentOS 机器,我在其中创建了 Kubernetes 集群:
minikube start --driver=docker --addons ingress
.
在集群内部,我使用 Helm 图表安装了一个 Harbor 实例,其中:
helm install harbor-release harbor/harbor --set expose.type=ingress
在 CentOS 机器中,我在 /etc/hosts 中添加了一个指向新入口的条目:
echo "$(minikube ip) core.harbor.domain" >> /etc/hosts
有了这个,我可以从这台机器访问 Harbor。我可以使用 Firefox 登录,并且可以推送一些自定义图像:
docker pull python
docker tag docker.io/python core.harbor.domain:443/library/python:latest
docker login https://core.harbor.domain --username admin --password Harbor12345
docker push core.harbor.domain:443/library/python:latest
我们都很高兴。当我尝试使用这些图像部署另一个 Helm 图表时,我的问题就开始了。Kubernetes 无法提取图像和超时。经过一些尝试,我发现我的 minikube 节点无法连接到 Harbor。
我尝试向 /etc/hosts 添加不同的 IP,例如 127.0.0.1minikube ip
等,但没有任何结果。Docker 永远无法拉动。如果我使用 127.0.0.1 我可以做 acurl -k https://core.harbor.domain
但不能做docker login
.
我还尝试将 core.harbor.domain 添加到 docker 不安全的注册表中,但没有任何运气。
也许我遗漏了一些东西,我首先不应该能够从我的 minikube 节点访问入口 url。
- 我可能做错了什么?
- 您认为将 Harbor 和应用程序 pod 放在同一个集群中是一种好方法吗?