首页 > 解决方案 > 从 GKE 连接到 Google Cloud SQL 数据库的方式比较

问题描述

我一直在探索安全连接到 Google Cloud SQL 数据库的方法。我们使用 Google Kubernetes Engine 来部署我们的 Java Spring 应用程序。

因此,https: //cloud.google.com/sql/docs/mysql/connect-kubernetes-engine 提到了从 kubernetes 连接到云 sql 的两种方法。我们不能使用私有 IP 方法,因为我们没有 VPC 原生集群。所以我们选择 Cloud SQL Proxy docker image 作为连接媒介。

然后,考虑到https://cloud.google.com/sql/docs/postgres/external-connection-methods,提到了以下选项:

在此处输入图像描述

我们不能采用公共 IP 方法,因为我们的 kubernetes pod IP 地址将不断变化。我们已经入围了 Cloud SQL 代理 docker 镜像。所以我们只剩下 JDBC 套接字库了。

因此,比较 Cloud SQL 代理和 JDBC 套接字库:

从上面的比较来看,JDBC Socket Library 似乎是更好的方法,因为我们不需要 sidecar 容器 - 云 sql 代理。

在应用程序部署在 Google Kubernetes Engine 中的情况下,与 JDBC 套接字库相比,Cloud SQL 代理是否有任何优势?

标签: javakubernetesgoogle-cloud-platformgoogle-cloud-sqlcloud-sql-proxy

解决方案


Cloud SQL 代理与套接字工厂相比没有任何优势,除了代理可以为更广泛的应用程序、语言和框架提供身份验证。

如果您的项目已经与 Cloud SQL JDBC Socket Factory 兼容,则应该改用它。它更有效,因为它可以为您的应用程序创建直接连接。


推荐阅读