【问题标题】:GKE pod connectivity to Cloud SQLGKE pod 与 Cloud SQL 的连接
【发布时间】: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


【解决方案1】:

对于私有 GKE 集群,GKE 工作节点和在这些节点上运行的 pod 通过 Private API Access 访问其他 GCP API,例如 Cloud SQL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-25
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 2021-05-28
    • 2022-01-18
    • 1970-01-01
    • 2020-01-01
    相关资源
    最近更新 更多