【发布时间】:2018-01-31 20:57:26
【问题描述】:
我在托管 Django 服务器的 Google Compute Engine 上运行了多个 docker 机器(dev、staging)(这需要访问 Google Cloud SQL 访问权限)。我有多个 Google Cloud SQL 实例正在运行,每个实例都由我的 Google Compute Engine 实例上的相应 docker 机器使用。
目前我通过将我的计算引擎 IP 列入白名单来访问 Cloud SQL。但出于明显的原因,我不想使用 IP,即我的开发机器不使用静态 IP。
但现在想使用 google_cloud_proxy 的方式来获得访问权限。但我该怎么做! GCP 提供了多种访问 google Cloud SQL 实例的方法。但它们都不适合我的用例:
我有这个选项https://cloud.google.com/sql/docs/mysql/connect-compute-engine;但是这个
- 只允许我的计算机引擎访问 SQL 实例;我必须从我的 Docker 访问。
- 这不支持我在同一台计算引擎机器上代理多个 SQL 实例;如果可能的话,我希望在 docker 内做这个代理。
那么,我如何访问 Docker 中的 CLoud SQL 呢?如果 docker compose 是更好的开始方式; Kubernetes 实现起来有多容易(我使用 google 容器引擎进行生产)
【问题讨论】:
-
单个 Cloud SQL 代理可以代理多个实例。您需要多个代理的原因是什么?
-
我读了一些东西,意识到你说的是真的。所以我的第二个问题现在无效.. 你对 Q1 有什么想法吗.. 我如何在单个 docker 中访问这个代理连接
-
我不确定我是否完全理解这个问题。您可以将代理作为单独的 docker 镜像 (cloud.google.com/sql/docs/mysql/connect-docker) 运行,然后从您的 docker 镜像连接到它。
-
根据您的回答。我可以看到你理解我的问题。 Connect-docker 是我在我的问题中使用 docker-compose 的意思。我看到 docker compose 是选项。但我只是在探索这是否是最好的选择。
-
如果您使用静态 IP 从 GCE 实例连接,您可以选择将这些 IP 列入白名单并直接通过 IP 连接。如果您不想维护 IP 白名单,那么使用代理 docker 容器是您的最佳选择。
标签: google-cloud-platform google-compute-engine google-cloud-sql