我一直在尝试通过专用IP连接设置Google Cloud SQL,其中 绑定的IP范围是手动分配的,尚未成功。一世 不知道这是否是实现中的错误,因为它仍处于测试阶段,如果 文档中缺少某些内容,或者如果我做错了什么。 (底部是一个命令行会话,以简要概述我所 看到的。)
最初,我将其设置为自动分配IP范围。一切正常 很好,只是它选择了172.17.0.0/24,它是网络之一 在我的GCE实例上由docker管理,因此无法从那里连接(但 可以在没有docker的另一台机器上)。因此,我尝试阅读手册 分配路线。
首先,我拆除在上创建的所有关联的网络对象
我的代表。有两个VPC对等cloudsql-postgres-googleapis-com
和
servicenetworking-googleapis-com
(已删除),然后确认
与它们关联的路由条目也消失了。
然后,我按照https://cloud.google.com/vpc/docs/configure-private-services-access#allocating-range上的说明创建了10.10.0.0/16,因为我希望在我的default
网络中使用它,
自动模式,所以我仅限于下半部分(目前尚不清楚)。
那时,我返回到Cloud SQL实例创建页面,因为它
应该为我做剩下的事。我选中了“私有IP”框,然后选择了
default
网络。
我当时没有做笔记,所以我的回忆可能有缺陷, 尤其是因为我以后的尝试经历始终是不同的, 但我记得看到的是在“网络选择”下拉列表下方 “此实例将使用现有的托管服务连接”。我以为 这意味着它将使用我创建的地址范围,然后继续 实例创建,但该实例再次登陆172.17.0.0/24网络。
大约在第三次返回该消息之前,它有一个选择框 列出我的地址范围。再一次,我的回忆很差,所以我不知道我是否 看到或单击“连接”按钮,但最终结果相同。
在第四次尝试中,我确实注意到“连接”按钮,并确保单击 并等待它说成功。它所做的有点:它取代了 下拉菜单和带有与我之前使用过的邮件相同的消息的按钮 现有连接。再次,该实例是在错误的网络上创建的。
我尝试了第五次,这次用新的地址创建了一个新的地址范围
名称-google-managed-services-default
-这是
自动分配功能在我刚开始时就将其归还(以及
私人服务访问文档建议)。但是即使有这个名字,
选择它,我仍然在错误的网络上找到了该实例。
的确,我现在看到单击“连接”后,我可以去检查路由和 看到创建的路由是到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,但我宁愿不这样做。)
答案 0 :(得分:2)
我在这里https://cloud.google.com/sql/docs/mysql/private-ip发现这似乎是正确的行为:
建立专用服务访问连接并创建为此连接配置了专用IP的Cloud SQL实例后,将无法修改或删除Cloud SQL服务使用的相应(内部)子网和范围。即使删除对等和IP范围也是如此。建立内部配置后,在同一区域中创建并为私有IP配置的任何Cloud SQL实例都将使用原始内部配置。
答案 1 :(得分:0)
原来,已修复了Google Cloud服务机制中的某个错误。作为参考,请参见https://issuetracker.google.com/issues/118849070上的对话。