helm postgres 连接 - 无法连接

helm postgres connection - unable to connect

我已经在 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.x.x ip 或 minikube ip 192.168.64.2 我在下面得到同样的错误,我可以使用 http://camunda.minikube.local/ or 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”上的服务器 运行 是否接受 TCP/IP 端口 30 上的连接

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>

https://github.com/darkcloudi/helm-camunda-postgres/blob/master/camunda-install/charts/postgres/templates/postgres.yaml

由于您是从集群内部访问它的,因此您应该使用 ClusterIP 10.108.235.106 和端口 5432

如果你想从集群外部访问它,那么你可以使用节点 IP 192.168.64.2 and NodePort 30001

端口 30001 正在侦听节点 VM,容器正在侦听端口 5432。因此您无法从集群内通过端口 30001 访问它。

编辑:

服务上的Endpoints是空的。这是因为服务上的标签选择器正在选择带有标签 app=dev-postgres,name=dev-postgres 的 pods,但 pods 没有该标签。