概要
兩個不同 project 甚至是不同 organization 的 Network,可以透過 VPC peering 的服務,達到私有網路(RFC 1918 規範)互連的效果。
VPC Network Peering 的規範
- VPC Network Peering 適用於 Compute Engine, Kubernetes Engine 以及 App Engine Flex
- Peered Networks的 Routes, firewalls, VPNs 以及其他流量監控的工具都是單獨管理的
- 一個 VPC Network 可以與許多其他的 Network peering,但是有以下限制
- 一個 Network 最多只能有 25 個 peering Networks
- 一個 Network 以及與他 peered Networks 最多能有 15,500 個 instance
- Internal Load Balancing 的 forwarding rules,一個 Network 最多只能有 50 個
- Peered Networks 之間的 subnet IP range 不能重疊
- VPC Network Peering 不支援 legacy networks
- 不能透過 peered networks 連線至 VPN
- Peered Networks 之間的流量延遲與單一 Network 內的相同
VPC Network Peering 手把手教學
權限以及 Network 設定
在執行這以下的步驟前,需要先確定該使用者有 roles/editor 或是 roles/compute.networkAdmin 的 IAM roles。在 Project A 建立一個新的 Network 以及 subnet。#切記兩個 Network 的 subnet 不能重疊。
gcloud compute --project=[ProjectNameA] \
networks create network-a --subnet-mode=custom
gcloud compute --project=[ProjectNameA] \
networks subnets create peer-a --network=network-a \
--region=asia-east1 --range=10.0.0.0/16
在 Project B 建立一個新的 Network 以及 subnet。#切記兩個 Network 的 subnet 不能重疊。
gcloud compute --project=[ProjectNameB] \
networks create network-b --subnet-mode=custom
gcloud compute --project=[ProjectNameB] \
networks subnets create peer-b --network=network-b \
--region=asia-east1 --range=10.8.0.0/16
VPC Network Peering 設定
從 Project A 設定 peering,[network-A], [ProjectNameB], [network-B] 自行帶入
gcloud compute networks peerings create peer-ab \
--network [network-A] \
--peer-project [ProjectNameB] \
--peer-network [network-B] \
--auto-create-routes
確認 Project A 的 Network 的 peering 狀況,初始為 INACTIVE
gcloud compute networks peerings list --network network-A
從 Project B 設定 peering,[network-B], [ProjectNameA], [network-A] 自行帶入
gcloud compute networks peerings create peer-ba \
--network [network-B] \
--peer-project [ProjectNameA] \
--peer-network [network-A] \
--auto-create-routes
確認 Project B 的 Network 的 peering 狀況,從 INACTIVE 變為 ACTIVE
gcloud compute networks peerings list --network network-B