Dan*_*all 5 google-cloud-sql google-cloud-platform
我一直在尝试使用私有 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#allocing-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
Run Code Online (Sandbox Code Playgroud)
所以现在我不知道还能尝试什么。是否有一些我没有想清楚的状态?路由应该如何连接到地址范围?当我只要求一个对等互连时,为什么它会创建两个对等互连?如果我要手动创建到正确地址范围的路由,我认为这是行不通的,因为 Postgres 端点仍然位于错误的地址。
(是的,我可以重新配置 docker,但我不想。)
小智 4
我在这里发现https://cloud.google.com/sql/docs/mysql/private-ip这似乎是正确的行为:
建立私有服务访问连接并创建一个为该连接配置私有 IP 的 Cloud SQL 实例后,Cloud SQL 服务使用的相应(内部)子网和范围将无法修改或删除。即使您删除对等互连和 IP 范围也是如此。建立内部配置后,在同一区域中创建并配置专用 IP 的任何 Cloud SQL 实例都会使用原始内部配置。
归档时间: |
|
查看次数: |
3896 次 |
最近记录: |