我采用的kubesphere-2.1进行all-in-on模式安装,安装的机器ip是192.168.3.178,通过在开启应用商店后,部署了一个在应用商店里面的harbor应用,部署之前,修改了harbor的安装配置文件,关闭了tls, 之后一切安装正常,安装完成之后,在kubesphere中能够看到habor的ingress路由,最后我在kubesphere应用中开启了网关nodeport暴露端口31093,并且在自己的笔记本上绑定了host为: 192.168.3.178 core.harbor.domain。 最后在笔记本访问http://core.harbor.domain:31093能够正常访问harbor,并且能够登陆。 由于笔记本上(mac)也安装了docker daemon,所以使用 docker login -u admin -p Harbor12345 core.harbor.domain:31093 登陆harbor,但是无法login,
报错如下: Get http://core.harbor.domain:31093/v2/: Get https://core.harbor.domain/service/token?account=admin&client_id=docker&offline_token=true&service=harbor-registry: Service Unavailable
从错误来看,是get harbor的一个方法没有加上端口,因为这个机制是docker login它内部处理出来的,感觉是因为需要授权,所以内部重定向到了一个地址,而这个地址并没有识别端口而是默认采用80。另外我又在all-in-one这台机器上,直接使用容器ip进行访问harbor,而容器是暴露80端口,所以docker login 就成功了。想问一下,这种问题怎么解决?我想让k8s中的harbor的能力释放到连接到内网所有机器上,让开放人员在本机都能够访问到harbor,而不只是在对应点k8s节点上