【发布时间】:2020-03-25 16:21:22
【问题描述】:
请赐教。
当前设置: Docker 容器在 VM 实例中运行 - 在构建 docker 映像期间,docker 容器可以使用属性文件中包含的所有凭据连接到我们的 Cloud SQL
未来设置:我将此容器部署为我的 GKE 上的 pod,但它无法连接到我的 Cloud SQL。我很困惑,在建立与 Cloud SQL DB 的连接之前,是否还需要执行以下指南中的额外步骤?
https://cloud.google.com/sql/docs/mysql/connect-kubernetes-engine
由于在图像构建过程中所有数据库凭据打包在一起的属性文件,我应该能够从 GKE pod 连接到 Cloud SQL 数据库,对吧?
====
kubectl logs -f appds-d599f75d4-wn9x6
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up
【问题讨论】:
-
可能是入口或入口防火墙阻止了它
-
您是否检查过您的 pod 是否有网络连接?请看官方文档:Diagnosing issues with Cloud SQL instances
-
另外,请从您提供的链接中说明您关注的是哪个示例,因为有多个。您是否检查了访问范围? Access scopes
-
您能否确认您实际上将 cloudSQL 代理作为 sidecar 运行,是否通过私有 IP 连接到 Cloud SQL,以及您是否在 Cloud SQL 上配置了任何白名单
-
@erlchamp 你能解释一下吗?我在同一个 VPC 网络中有一个集群和云 sql,并且我的 gke 集群启用了“VPC-native(别名 IP)”,我假设 pod 应该能够在没有任何额外工作的情况下与云 sql 连接,但看起来容器不能要连接到云 sql,您能否详细介绍一下您是如何设置“Egress”以及它如何帮助通信的?
标签: kubernetes google-cloud-platform google-kubernetes-engine google-cloud-sql