database - 掌舵 postgres 连接 - 无法连接
问题描述
我在 github 上上传了一些代码:https ://github.com/darkcloudi/helm-camunda-postgres
运行以下命令会部署两个图表(请注意,该集合是允许部署 postgres 数据库所必需的,我默认禁用它,因为 camunda 带有自己的数据库,我正在尝试将其配置为使用 postgres) :
helm install dev ./camunda-install --set tags.postgres=true
您会看到一切看起来都不错:
NAME READY STATUS RESTARTS AGE
pod/dev-camunda-67f487dcd-wjdfr 1/1 Running 0 36m
pod/dev-camunda-test-connection 0/1 Completed 0 45h
pod/postgres-86c565898d-h5tf2 1/1 Running 0 36m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/dev-camunda NodePort 10.106.239.96 <none> 8080:30000/TCP 36m
service/dev-postgres NodePort 10.108.235.106 <none> 5432:30001/TCP 36m
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 4d19h
如果我使用 10.108.xx ip 或 minikube ip 192.168.64.2 我在下面得到相同的错误,我可以使用http://camunda.minikube.local/或http://192.168.64.2:30000/连接到 tomcat所以想知道尝试连接到 postgres 时我可能会出错的地方。
kubectl exec -it postgres-86c565898d-h5tf2 -- psql -h 10.108.235.106 -U admin --password -p 30001 camunda
Password:
psql:错误:无法连接到服务器:无法连接到服务器:连接超时服务器是否在主机“10.108.235.106”上运行并接受端口 30 上的 TCP/IP 连接
kubectl describe svc dev-postgres
Name: dev-postgres
Namespace: default
Labels: app.kubernetes.io/managed-by=Helm
name=dev-postgres
Annotations: meta.helm.sh/release-name: dev
meta.helm.sh/release-namespace: default
Selector: app=dev-postgres,name=dev-postgres
Type: NodePort
IP: 10.108.235.106
Port: postgres-http 5432/TCP
TargetPort: 5432/TCP
NodePort: postgres-http 30001/TCP
Endpoints: <none>
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
解决方案
由于您是从集群内访问它,因此您应该使用 ClusterIP10.108.235.106
和 port 5432
。
如果您想从集群外部访问它,那么您可以使用节点 IP192.168.64.2 and NodePort 30001
端口30001
正在侦听节点虚拟机,容器正在侦听端口5432
。因此您无法30001
从集群内通过端口访问它。
编辑:
服务上Endpoints
是空的。这是因为服务上的标签选择器正在选择带有标签的 pod,app=dev-postgres,name=dev-postgres
但这些 pod 没有该标签。
推荐阅读
- php - 将 Stripe 结帐会话与订阅 webhook 关联
- c++ - 我怎样才能在循环中做减法?
- ibm-mq - 可以在两个远程 qmgrs 中使用具有相同 CN 的证书吗?
- vue.js - 图例未显示使用 Echarts 的 vue.js 项目
- javascript - 使用 ShellExecute 正确识别打开的 Web 浏览器以使用 document.getElement
- archunit - 确保从另一个方法调用?
- sql-server - SQL Server 2019 忽略 WHERE 子句?
- acumatica - 可以为 AP 账单分配不同的审批人
- laravel - 使用 Laravel Controller 加载索引时获取当天的记录
- python - 将所有可能的组合应用到代码中以计算分数