google-cloud-platform - GCP Cloud SQL 的私有(private) IP 地址范围被忽略

标签 google-cloud-platform google-cloud-sql

我一直在尝试使用私有(private) IP 连接设置 Google Cloud SQL,其中
它绑定(bind)的IP范围是手动分配的,没有成功。一世
不知道这是否是实现中的错误,因为它仍处于测试阶段,如果
文档中缺少某些内容,或者我只是做错了什么。
(命令行 session 在底部,用于快速总结我的工作
看到。)

最初,我将其设置为自动分配 IP 范围。这一切都奏效了
很好,只是它选择了 172.17.0.0/24,这是其中一个网络
由我的 GCE 实例上的 docker 管理,所以我无法从那里连接(但是
可以在另一台没有 docker 的机器上)。所以我试着去看看手册
分配路线。

首先,我拆除了所有已在其上创建的关联网络对象
我的代表。有两个 VPC 对等互连,cloudsql-postgres-googleapis-comservicenetworking-googleapis-com ,我删除了,然后我确认了
与它们关联的路由条目也消失了。

然后,我按照 https://cloud.google.com/vpc/docs/configure-private-services-access#allocating-range 的指示进行操作。 ,创建 10.10.0.0/16,因为我想要它在我的 default网络,即
自动模式,所以我仅限于低半部分(目前很清楚)。

那时,我回到了 Cloud SQL 实例创建页面,因为它
应该为我做剩下的事情。我选中了“私有(private) IP”框,然后选择了default网络。

我当时没有做笔记,所以我的内存可能有缺陷,
特别是因为我在后来的尝试中的经验一直不同,
但我记得看到的是在网络选择下拉列表下方,它说
“此实例将使用现有的托管服务连接”。我以为
这意味着它将使用我创建的地址范围,并继续使用
实例创建,但实例再次登陆 172.17.0.0/24 网络。

回到第三次,那个消息之前的地方,它有一个选择框
列出我的地址范围。再一次,我的内存力很差,所以我不知道我是否
看到或单击“连接”按钮,但最终结果是相同的。

在第四次尝试时,我确实注意到了“连接”按钮,并确保单击
它,并等待它说它成功了。它做了什么,有点:它取代了
下拉菜单和按钮与我之前看到的关于使用
现有的连接。再一次,实例是在错误的网络上创建的。

我尝试了第五次,这次创建了一个新的地址范围
姓名——google-managed-services-default ——这是那个名字
当我第一次开始时,自动分配已将其归还(以及
私有(private)服务访问文档建议)。但即使有这个名字,而且明确地
选择它,我仍然以错误的网络上的实例结束。

确实,我现在看到点击“连接”后,我可以去查看路线和
看到创建的路由是到 172.17.0.0/24。

如果我从命令行执行所有操作,似乎也会发生同样的事情:

$ gcloud beta compute addresses list
NAME                             ADDRESS/RANGE    TYPE      PURPOSE      NETWORK  REGION    SUBNET  STATUS
google-managed-services-default  10.11.0.0/16     INTERNAL  VPC_PEERING  default                    RESERVED
$ gcloud beta services vpc-peerings connect \ 
    --service=servicenetworking.googleapis.com \
    --ranges=google-managed-services-default \
    --network=default \
    --project=...
$ gcloud beta services vpc-peerings list --network=default
--- 
network: projects/.../global/networks/default
peering: servicenetworking-googleapis-com
reservedPeeringRanges: 
- google-managed-services-default
---
network: projects/.../global/networks/default
peering: cloudsql-postgres-googleapis-com
reservedPeeringRanges:
- google-managed-services-default
$ gcloud beta compute routes list
NAME                            NETWORK      DEST_RANGE     NEXT_HOP                          PRIORITY
peering-route-ad7b64a0841426ea  default      172.17.0.0/24  cloudsql-postgres-googleapis-com  1000

所以现在我不确定还有什么可以尝试的。是否有一些我不想清除的状态?路由应该如何连接到地址范围?当我只要求一个时,为什么它会创建两个对等?如果我要手动创建到正确地址范围的路由,我认为这不会起作用,因为 Postgres 端点仍将位于错误的地址。

(是的,我可以重新配置 docker,但我宁愿不这样做。)

最佳答案

我在这里找到 https://cloud.google.com/sql/docs/mysql/private-ip这似乎是正确的行为:

在您建立私有(private)服务访问连接并创建 Cloud SQL 实例并为该连接配置私有(private) IP 后,无法修改或删除 Cloud SQL 服务使用的相应(内部)子网和范围。即使您删除对等互连和您的 IP 范围也是如此。建立内部配置后,在同一区域创建并配置为私有(private) IP 的任何 Cloud SQL 实例都使用原始内部配置。

关于google-cloud-platform - GCP Cloud SQL 的私有(private) IP 地址范围被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53112449/

相关文章:

google-cloud-platform - GCP Notebook AI——具有写入权限的 SSH?

kubernetes - 在具有固定域和端口的 GKE 中运行可扩展服务

google-cloud-platform - 是否可以通过 ssh 使用 Google Cloud Shell?

mysql - 谷歌云MySql说连接太多

mysql - 谷歌云 SQL 监控

postgresql - Cloud SQL (postgres) 外部数据包装器连接超时到副本实例

mysql - 我可以将 MySQL 数据导入 Google Spanner 吗?

google-cloud-platform - 如何按小时监控 Google Cloud Platform (GCP) 成本?

google-apps-script - 从Apps脚本访问Google Cloud SQL

sql - 无法使用 google cloudSQL 连接所需的端口