当前位置: 首页 > 知识库问答 >
问题:

如何在GCP中连接到GKE postgresql svc?

董子平
2023-03-14

我试图连接到我的kubernetes部署中的postgresql服务(pod),但是我的GCP没有提供端口(所以我不能使用类似于:$psql-h localhost-u postgresql admin1-password-p 31070 postgresql连接到postgresql并查看我的数据库)。


@cloudshell:~ (academic-veld-230622)$ psql -h 35.239.52.68 -U jhipsterpress --password -p 30728 jhipsterpress-postgresql
Password for user jhipsterpress:
psql: could not connect to server: Connection timed out
        Is the server running on host "35.239.52.68" and accepting
        TCP/IP connections on port 30728?

apiVersion: v1
kind: Service
metadata:
  name: jhipsterpress
  namespace: default
  labels:
    app: jhipsterpress
spec:
  selector:
    app: jhipsterpress
  type: LoadBalancer
  ports:
  - name: http
    port: 8080



NAME                                            READY     STATUS    RESTARTS   AGE
pod/jhipsterpress-84886f5cdf-mpwgb              1/1       Running   0          31m
pod/jhipsterpress-postgresql-5956df9557-fg8cn   1/1       Running   0          31m

NAME                               TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)          AGE
service/jhipsterpress              LoadBalancer   10.11.243.22   35.184.135.134   8080:32670/TCP   31m
service/jhipsterpress-postgresql   LoadBalancer   10.11.255.64   35.239.52.68     5432:30728/TCP   31m
service/kubernetes                 ClusterIP      10.11.240.1    <none>           443/TCP          35m

NAME                                       DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/jhipsterpress              1         1         1            1           31m
deployment.apps/jhipsterpress-postgresql   1         1         1            1           31m

NAME                                                  DESIRED   CURRENT   READY     AGE
replicaset.apps/jhipsterpress-84886f5cdf              1         1         1         31m
replicaset.apps/jhipsterpress-postgresql-5956df9557   1         1         1         31m


@cloudshell:~ (academic-veld-230622)$ kubectl describe pod jhipsterpress-postgresql
Name:               jhipsterpress-postgresql-5956df9557-fg8cn
Namespace:          default
Priority:           0
PriorityClassName:  <none>
Node:               gke-standard-cluster-1-default-pool-bf9f446d-9hsq/10.128.0.58
Start Time:         Sat, 06 Apr 2019 13:39:08 +0200
Labels:             app=jhipsterpress-postgresql
                    pod-template-hash=1512895113
Annotations:        kubernetes.io/limit-ranger=LimitRanger plugin set: cpu request for container postgres
Status:             Running
IP:                 10.8.0.14
Controlled By:      ReplicaSet/jhipsterpress-postgresql-5956df9557
Containers:
  postgres:
    Container ID:   docker://55475d369c63da4d9bdc208e9d43c457f74845846fb4914c88c286ff96d0e45a
    Image:          postgres:10.4
    Image ID:       docker-pullable://postgres@sha256:9625c2fb34986a49cbf2f5aa225d8eb07346f89f7312f7c0ea19d82c3829fdaa
    Port:           5432/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Sat, 06 Apr 2019 13:39:29 +0200
    Ready:          True
    Restart Count:  0
    Requests:
      cpu:  100m
    Environment:
      POSTGRES_USER:      jhipsterpress
      POSTGRES_PASSWORD:  <set to the key 'postgres-password' in secret 'jhipsterpress-postgresql'>  Optional: false
    Mounts:
      /var/lib/pgsql/data from data (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-mlmm5 (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             True
  ContainersReady   True
  PodScheduled      True
Volumes:
  data:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  spingular-bucket
    ReadOnly:   false
  default-token-mlmm5:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-mlmm5
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason                  Age                From                                                        Message
  ----     ------                  ----               ----                                                        -------
  Warning  FailedScheduling        33m (x3 over 33m)  default-scheduler                                           persistentvolumeclaim "spingular-bucket" not found
  Warning  FailedScheduling        33m (x3 over 33m)  default-scheduler                                           pod has unbound immediate PersistentVolumeClaims
  Normal   Scheduled               33m                default-scheduler                                           Successfully assigned default/jhipsterpress-postgresql-5956df9557-fg8cn to gke-standard-cluster-1-default-pool-bf9f446d-9hsq
  Normal   SuccessfulAttachVolume  33m                attachdetach-controller                                     AttachVolume.Attach succeeded for volume "pvc-95ba1737-5860-11e9-ae59-42010a8000a8"
  Normal   Pulling                 33m                kubelet, gke-standard-cluster-1-default-pool-bf9f446d-9hsq  pulling image "postgres:10.4"
  Normal   Pulled                  32m                kubelet, gke-standard-cluster-1-default-pool-bf9f446d-9hsq  Successfully pulled image "postgres:10.4"
  Normal   Created                 32m                kubelet, gke-standard-cluster-1-default-pool-bf9f446d-9hsq  Created container
  Normal   Started                 32m                kubelet, gke-standard-cluster-1-default-pool-bf9f446d-9hsq  Started container

使用打开的防火墙:posgresql-jhipster入口应用于所有
IP范围:0.0.0.0/0TCP:30728允许999默认值

谢谢你的帮助。任何文档都是非常感谢的。

共有1个答案

申浩广
2023-03-14

使用kubectl更新您的服务,编辑svc jhipsterpress-postgresql将spec.type字段更改为“LoadBalancer”

然后您将拥有一个可以连接到的外部IP

 类似资料:
  • 我使用的是spring boot starter和。它在实际的GCP中工作得很好,但现在我想用它进行本地Google PubSub模拟器的测试。如何提供自定义url、端口和无凭据? 编辑: 我的应用程序中只有一个bean: 和 Application.Properties: 当我运行这个应用程序时,我得到了: 当然,链接上说的是gcloud sdk,而不是pubsubtemplate

  • 问题内容: 我收集到有两种方法可以在Windows中(在Windows上)连接到Oracle DB: github.com/tgulacsi/goracle github.com/mattn/go-oci8 但是对于我这个级别的人(开源+ golang的初学者)来说,这两种方法/驱动程序非常棘手。 在不同的机器上进行部署,开发等工作时,这也是一个负担(也假设它会工作)。 有没有更好的方法可以在go

  • 我已经使用gcloud的beta版创建了dataproc集群,其中包含可选组件presto。 当我尝试执行下面的命令来访问配置单元目录时,它可以成功地打开presto cli。 但我得到下面的错误,而查询通过presto-cli。 普雷斯托:默认值 运行命令java时出错。网SocketException:连接被拒绝(连接被拒绝) 在此方面的任何帮助都将不胜感激

  • 我正在尝试将GCP应用程序引擎上运行的nodejs应用程序连接到Mongo Atlas,但我收到网络错误。我已经设置了VPC对等,启用了无服务器VPC连接器,并在app yaml中添加了VPC\u access\u连接器属性,并在Atlas中列出了连接器的IP范围。我看到的确切错误是 我的代码是

  • 我每天都在连接mongo db,它工作得很好,但今天它困扰着我下面的错误,任何人都可以帮我请。 连接到:测试2017-01-10T14:26:13.073 0530警告:连接到127.0.0.1:27017失败,原因:错误号:111连接被拒绝2017-01-10T14:26:13-074 0530错误:无法连接到服务器127.0-0.1:27017(127.0.0.1),在src/mongo/sh

  • 问题内容: 有谁知道如何使用Visual Studio 2010 连接到MySQL 5.1 吗? 我已经尝试过MySQL Connector / ODBC路由,它给了我非常讨厌的结果。在视图部分中,所有表行均以视图的形式列出,而在表或过程文件夹中则完全没有列出任何内容。 问题答案: 为了使Entity Frame与VS2010一起使用,我必须执行以下操作: 这仅适用于Mysql .net Conn