将 Kubernetes 上的 node.js 运行 连接到云端 Sql

Connecting node.js running on Kubernetes to Cloud Sql

我正在尝试将我的 node.js 后端连接到同一个项目中的云 SQL,遵循了许多教程和文档,但没有成功。

这是我的服务和端点配置:

kind: Service
apiVersion: v1
metadata:
  name: mysql-service
spec:
  type: ClusterIP
  ports:
  - protocol: TCP
    port: 3306
    targetPort: 3306
---
kind: Endpoints
apiVersion: v1
metadata:
  name: mysql-service
subsets:
  - addresses:
    - ip: 10.78.176.3
    ports:
    - port: 3306

我站在 node.js 一边:

process.DB_HOST 10.78.176.3
process.DB_DATABASE marketplace_test
MySQL Connection pool error
connect ETIMEDOUT

我已经尝试通过 public 和私有 IP,通过 'mysql-service' 名称进行连接,但没有任何效果。

会不会是我遗漏的某种关系,比如 matchLabels?我应该匹配服务+端点+部署吗?如何? 我必须为此使用代理吗?

我错过了什么?

感谢大家的帮助!

如果您通过私有 IP 连接,您需要确保满足 environment requirements on your GKE cluster. This means that it needs to be a VPC-native cluster。如果不是,则需要使用 public IP。

如果您使用的是 Public IP,则需要验证您的连接。有 3 种主要方法可以做到这一点: