Ubuntu 21.10上microk8s部署Gitea出现PostgreSQL域名解析错误
Gitea部署报错排查思路
1. 验证集群DNS解析能力
- 启动临时调试Pod测试服务域名解析:
kubectl run -it --rm --image=busybox:1.28.4 dns-test -- nslookup gitea-postgresql.default.svc.cluster.local
如果解析失败,优先检查CoreDNS运行日志:kubectl logs -n kube-system <替换为你的coredns Pod名称>
microk8s的DNS组件经常出现和主机systemd-resolved服务冲突的问题,可以尝试先重启DNS组件:microk8s disable dns && microk8s enable dns,重启后再次测试解析
2. 校验Gitea数据库配置
- 查看Gitea初始化容器的数据库相关环境变量,确认地址配置是否正确:
kubectl exec -it gitea-0 -c configure-gitea -- env | grep -i DB
如果配置的数据库地址是域名,可以临时将配置改为PostgreSQL的ClusterIP(你的环境中为10.152.183.227)测试连接,修改后如果Pod可以正常启动,即可确定问题出在DNS解析环节。
3. 排查集群网络连通性
- 启动临时PostgreSQL客户端Pod测试连通性:
- 用域名测试:
kubectl run -it --rm --image=postgres:alpine pg-test -- psql -h gitea-postgresql.default.svc.cluster.local -U gitea -d gitea - 用IP测试:
kubectl run -it --rm --image=postgres:alpine pg-test -- psql -h 10.152.183.227 -U gitea -d gitea
如果仅IP可连通,即可确认是DNS解析异常。
- 用域名测试:
4. 临时规避方案
如果暂时无法修复DNS问题,可在部署Gitea的Helm values配置中直接填写PostgreSQL的ClusterIP作为数据库地址,或者为Gitea Pod配置hosts字段,手动将gitea-postgresql.default.svc.cluster.local映射到对应的ClusterIP。
内容的提问来源于stack exchange,提问作者Nathan Sowatskey
相关产品推荐
相关产品推荐

