設定雙層式服務和工作

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

子網路類型

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

雙堆疊限制

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

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

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

  • 與僅支援 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. 如果您要建立新網路或轉換現有網路,請輸入名稱,並確認「子網路建立模式」設為「自訂」,然後選取「為這個虛擬私有雲網路設定 ULA 內部 IPv6 範圍」

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

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

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

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

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

    1. 按一下「容器、磁碟區、網路與安全性」,然後選取「網路」分頁標籤。
    2. 按一下「連線至虛擬私有雲,以傳出流量」,然後按一下「直接將流量傳送至虛擬私有雲」
    3. 選取您在上一個步驟中建立的「網路」
    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」子網路,請參閱「將子網路的堆疊類型變更為雙重堆疊」。然後在雙堆疊子網路上部署服務執行工作

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

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

確認網路和子網路

如要確認服務或工作是否位於虛擬私有雲網路,請執行下列指令:

gcloud run services describe SERVICE_NAME --region=REGION

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

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

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