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

时间:2019-05-21 14:07:12

标签: kubernetes google-cloud-platform google-cloud-sql

我正在尝试通过许多教程和文档将我的node.js后端连接到同一项目上的Cloud 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

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

是否可能缺少某种联系,例如matchLabels?我应该匹配服务+端点+部署吗?怎么样? 我必须为此使用代理吗?

我缺少什么?

感谢所有帮助!

1 个答案:

答案 0 :(得分:1)

如果要通过专用IP连接,则需要确保满足GKE群集上的environment requirements。这意味着它必须是VPC-native cluster。如果不是,则需要使用公共IP。

如果使用公共IP,则需要验证连接。可以通过以下三种主要方法进行操作: