首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Kubernetes连接超时。如何检查凭据是否有效?

Kubernetes连接超时。如何检查凭据是否有效?
EN

Stack Overflow用户
提问于 2019-05-13 07:56:10
回答 2查看 2.7K关注 0票数 2

我正在尝试为PostgreSQL设置一个Cloud映像,正如前面提到的这里。我可以让我的应用程序连接到代理码头映像,但代理超时。我怀疑这是我的凭据或端口,所以我如何调试并确定它是否有效?这就是我的项目

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl create secret generic cloudsql-instance-credentials --from-file=credentials.json=my-account-credentials.json

我的部署规范片段:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spec:
      containers:
        - name: mara ...
        - name: cloudsql-proxy
          image: gcr.io/cloudsql-docker/gce-proxy:1.11
          command: ["/cloud_sql_proxy",
                    "-instances=<MY INSTANCE NAME>=tcp:5432",
                    "-credential_file=/secrets/cloudsql/credentials.json"]
          volumeMounts:
            - name: cloudsql-instance-credentials
              mountPath: /secrets/cloudsql
              readOnly: true
      volumes:
        - name: cloudsql-instance-credentials
          secret:
            secretName: cloudsql-instance-credentials

我的cloudsql代理的日志显示了一个超时:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
2019/05/13 15:08:25 using credential file for authentication; email=646092572393-compute@developer.gserviceaccount.com
2019/05/13 15:08:25 Listening on 127.0.0.1:5432 for <MY INSTANCE NAME>
2019/05/13 15:08:25 Ready for new connections
2019/05/13 15:10:48 New connection for "<MY INSTANCE NAME>"
2019/05/13 15:10:58 couldn't connect to <MY INSTANCE NAME>: dial tcp <MY PRIVATE IP>:3307: getsockopt: connection timed out

问题:

  • 我指定5432作为我的端口,但是正如您在上面的日志中所看到的,它达到了3307。这是否正常,如果没有,我如何指定5432?
  • 如何检查我的凭据是否有问题?我的凭据文件来自我的服务帐户123-compute@developer.gserviceaccount.com,当我转到云sql控制台时显示的服务帐户是p123-<somenumber>@gcp-sa-cloud-sql.iam.gserviceaccount.com。他们看起来不一样?那有什么区别吗?

如果我使Cloud实例在公共IP上可用,它就能工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-13 12:23:53

我指定5432作为我的端口,但是正如您在上面的日志中所看到的,它达到了3307

代理本地侦听您指定的端口(在本例中为5432),并通过端口3307连接到Cloud实例。这是预料之中的,也是正常的。

如何检查我的凭据是否有问题?

如果Cloud实例不存在,或者服务帐户没有访问权限,代理将返回一个授权错误。连接超时错误意味着它未能到达Cloud实例。

我的凭据文件来自我的服务帐户123-compute@developer.gserviceaccount.com,当我转到云sql控制台时显示的服务帐户是p123-@gcp-sa-cloud-sql.iam.gserviceaccount.com.。他们看起来不一样?

一个只是文件的名称,另一个是服务帐户本身的名称。文件名不必与服务帐户的名称相匹配。您可以在服务帐户页面上检查服务帐户的名称和IAM角色。

2019/05/13 15:10:58无法连接:拨号tcp :3307: getsockopt:连接超时

此错误意味着代理未能建立到实例的网络连接(通常是因为来自当前位置的路径不存在)。造成这种情况的原因有两个:

首先,确保没有防火墙或其他东西阻塞端口3307上的出站连接。

其次,由于您使用的是私有IP,所以您需要确保运行代理的资源符合联网要求

票数 4
EN

Stack Overflow用户

发布于 2021-05-25 08:02:57

代理侦听端口3307。在文档中提到了这一点。

代理使用端口3307连接到代理服务器。-- https://cloud.google.com/sql/docs/postgres/connect-admin-proxy#troubleshooting

您可能需要如下所示的创建防火墙

  • 方向:出口
  • 对匹配的操作:允许
  • 目标过滤器: IP范围0.0.0.0/0
  • 协议和端口: tcp:3307和tcp:5432
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56115938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文