設定雙層式服務和工作

雙重堆疊子網路可讓 Cloud Run 服務和工作將 IPv4 和內部 IPv6 流量傳送至採用直接虛擬私有雲輸出功能的虛擬私有雲網路。您可以變更現有 Cloud Run 服務或工作的堆疊類型,或是將現有子網路更新為雙堆疊子網路。

子網路類型

虛擬私有雲網路支援下列 Compute Engine 子網路類型

雙堆疊限制

變更現有 Cloud Run 服務或工作的堆疊類型前,請考量以下限制:

  • Cloud Run 僅支援採用內部 IPv6 存取類型設定的子網路。進一步瞭解 IPv6 位址的內部和外部存取權類型

  • 雙重堆疊支援功能僅適用於自訂模式虛擬私有雲網路中的子網路。如要讓內部存取權類型可供雙重堆疊子網路使用,您必須啟用 VPC 網路內部 IPv6 範圍。將 VPC 網路設定為或轉換為自訂模式。

  • 與僅支援 IPv4 的子網路相比,雙重堆疊子網路可能會出現較高的冷啟動延遲,限制應用程式可擴充的速度。

  • 不支援 NAT64

在服務或工作上新增雙層子網路

雙重堆疊子網路同時包含 IPv4 和 IPv6 位址範圍。Cloud Run 服務和工作只能透過使用 內部 IPv6 位址的子網路傳送 IPv6 流量。

如要在 Cloud Run 服務或工作中新增內部 IPv6 範圍的雙重堆疊子網路,請按照下列步驟操作:

主控台

  1. 在 Google Cloud 控制台中:

    1. 啟用 Compute Engine API:

      啟用 Compute Engine API

    2. 前往「VPC networks」(VPC 網路) 頁面:

      前往「VPC networks」(虛擬私有雲網路)

  2. 如果您要建立新的自訂模式網路,請按一下「建立虛擬私有雲網路」。如果您使用的是現有的 VPC 網路,請按一下該 VPC 網路的名稱,顯示其「VPC network details」(虛擬私人雲端網路詳細資料) 頁面。

  3. 如果您要建立新的網路或轉換現有網路,請輸入名稱,並確認「子網路建立模式」已設為「自訂」,然後選取「為此 VPC 網路設定 ULA 內部 IPv6 範圍」

  4. 在「子網路」分頁中,按一下「新增子網路」。在顯示的面板中:

    1. 提供「Name」(名稱)
    2. 選擇一個 [Region] (地區)
    3. 在「IP 堆疊類型」中,選取「IPv4 和 IPv6 (雙重堆疊)」
    4. 輸入 IPv4 範圍。這是子網路的主要 IPv4 範圍
    5. 在「IPv6 存取權類型」部分,選取「內部」

      如果沒有「Internal」選項,請確認網路上是否已指派內部 IPv6 範圍。

    6. 依序點選「完成」和「建立」

  5. 在您建立的雙層子網路上部署 Cloud Run 服務執行工作。輸入所需服務或工作詳細資料時,您可以按照下列步驟選取新的 IPv6 位址範圍:

    1. 按一下「容器、磁碟區、網路與安全性」,然後選取「網路」分頁標籤。
    2. 按一下「連線至虛擬私有雲,以傳出流量」,然後點選「直接將流量傳送至虛擬私有雲」
    3. 選取先前步驟中建立的「Network」
    4. 按一下「子網路」欄位,選取新建立的 IPv6 位址範圍。

    系統會自動使用子網路的堆疊類型佈建服務或工作。

gcloud

  1. 如要建立支援雙重堆疊子網路的自訂模式網路,請執行下列指令:
gcloud compute networks create NETWORK \
    --subnet-mode=custom \
    --enable-ula-internal-ipv6

NETWORK 替換為虛擬私人雲端網路的名稱,此網路將包含新的子網路。

  1. 如要轉換或更新自訂模式網路,以便支援雙重堆疊子網路,請執行下列指令:
gcloud compute networks update NETWORK \
    --subnet-mode=custom \
    --enable-ula-internal-ipv6

NETWORK 替換為虛擬私人雲端網路的名稱,此網路將包含新的子網路。

  1. 如要建立具有內部 IPv6 範圍的雙重堆疊子網路,請使用雙重堆疊設定執行 subnets create 指令
gcloud compute networks subnets create SUBNET \
    --network=NETWORK \
    --range=PRIMARY_IPv4_RANGE \
    --stack-type=IPV4_IPV6 \
    --ipv6-access-type=INTERNAL \
    --region=REGION

更改下列內容:

  • SUBNET:新子網路的名稱。
  • NETWORK:虛擬私人雲端網路的名稱,此網路將包含新的子網路。
  • PRIMARY_IPv4_RANGE:新子網路的主要 IPv4 範圍,採用 CIDR 標記法。詳情請參閱「IPv4 子網路範圍」。
  • REGION:新子網路的 Google Cloud 建立區域。
  1. 在您建立的雙層子網路上部署 Cloud Run 服務執行工作。系統會自動使用子網路的堆疊類型佈建服務或工作。

將子網路從單一堆疊變更為雙重堆疊

如要在自訂模式虛擬私有雲網路中,將內部 IPv6 子網路範圍新增至現有的僅限 IPv4 子網路,請參閱「將子網路的堆疊類型變更為雙重堆疊」。然後在雙層封裝子網路上部署服務執行工作

將子網路從雙重堆疊變更為單一堆疊

不支援將子網路的堆疊類型從 IPv4 和 IPv6 (雙重堆疊) 變更為僅 IPv4 (單一堆疊),因為 Compute Engine IPv6 存取類型是內部類型。如要將服務或工作的雙重堆疊子網路變更為單一堆疊子網路,請在僅限 IPv4 (單一堆疊) 子網路上部署服務執行工作

確認網路和子網路

如要檢查服務或工作是否位於 VPC 網路中,請執行下列指令:

gcloud run services describe SERVICE_NAME --region=REGION

REGION 替換為新子網路建立所在的 Google Cloud 地區。

以下範例輸出內容會顯示您的網路和子網路:

  VPC Access:
    Network:        example-network
    Subnet:         example-subnet
    Egress:         private-ranges-only