Helm部署Harbor后提示用户或密码不正确的问题及解决方法
问题描述
我在TKE集群按照这篇教程和官方文档使用helm部署了Harbor镜像仓库。部署过程中没有遇到任何错误信息,但是当我通过域名访问Harbor前端页面时,输入默认的用户名和密码(admin/Harbor12345)却提示用户或密码不正确。
排查过程
我首先尝试了网上一些常见的方法,比如在harbor-db内修改密码,但是都不管用,感觉问题不是出在密码上。然后我想检查一下存储在harbor-core中的初始密码是否和values.yaml文件中配置的一致,于是我执行了以下命令:
kubectl exec -it harbor-core容器 bash printenv | grep PASSWORD
结果发现初始密码确实是Harbor12345,所以这也不是问题所在。之后我在GitHub上看到了一些类似的问题:
- 有人通过删除harborAdminPassword: "Harbor12345"中的双引号解决了问题,原因是yaml中的引号会被忽略。
- 有人没有将协议添加到externalURL,导致登录失败,需要将externalURL后的https改为http。
解决过程
个人认为我的问题出在第二个原因上,因为我的域名没有配置SSL证书,所以应该使用http而不是https访问Harbor。所以我将values.yaml文件中的externalURL从https://harbor.xxx.com改为了http://harbor.xxx.com。
同时对问题1比较在意,我也顺手把harborAdminPassword: "Harbor12345"中的双引号删掉了。
修改好新的values.yaml文件后,执行以下命令更新Harbor:
helm upgrade --namespace harbor xxxharbor ~/harbor -f ~/harbor/values.yaml
这时候会发现deployment中的xxxharbor-jobservice起不来,只要把Replicas改为0,再改回1即可。
最后再次访问Harbor前端页面,并输入用户名和密码(admin/Harbot12345),就可以成功登录了。
总结
本文介绍了使用helm部署Harot后遇到用户或密码不正确的问题及其原因和解决方法。通过修改values.yaml文件中的externalURL和harborAdminPassword两个配置项,并重新更新Helm chart即可解决问题。希望对其他遇到类似问题的人有所帮助。(该总结由New Bing生成)