設定共用虛擬私有雲網路

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

本頁面說明 Cloud Composer 的共用虛擬私人雲端網路和主專案要求。

共用虛擬私有雲可讓機構在專案層級建立預算和存取權控管邊界,同時確保透過私人 IP 進行的跨邊界通訊安全又有效率。在共用虛擬私有雲設定中,Cloud Composer 可以叫用同機構其他專案中託管的服務,而不會在公開網際網路上公開服務。 Google Cloud

共用虛擬私有雲指南

Cloud Composer 的服務專案和主專案
圖 1. Cloud Composer 的服務專案和主專案
  • 如要使用共用虛擬私有雲,您必須指派網路和子網路所屬的「主專案」,以及連結至主專案的「服務專案」。當 Cloud Composer 參與共用虛擬私有雲時,Cloud Composer 環境位在服務專案中。

  • 如要設定共用虛擬私有雲,請在主專案中選取下列 IP 範圍:

    • GKE 節點使用的子網路主要 IP 範圍,Cloud Composer 會將此範圍做為 Compute Engine 層。
    • GKE 服務的次要 IP 範圍。
    • GKE Pod 的次要 IP 範圍。
  • 次要 IP 範圍不得與這個 VPC 中的任何其他次要範圍重疊。

  • 請確保次要範圍足以容納叢集的大小環境調度

    如需設定 Pod 次要範圍服務的指南,請參閱建立虛擬私有雲原生叢集

  • 子網路的主要位址範圍應要能容納預期的成長規模,並涵蓋無法使用的 IP 位址

  • 如果您為環境使用 IP Masquerade Agent私人 IP 設定,請將節點和 Pod 的 IP 範圍新增至 ip-masq-agent ConfigMap 的 nonMasqueradeCIDRs 區段。詳情請參閱設定 IP 偽裝代理程式

準備

  1. 尋找下列專案 ID 和專案編號

    • 主專案:包含共用虛擬私人雲端網路的專案。
    • 服務專案:包含 Cloud Composer 環境的專案。
  2. 為貴機構進行準備

  3. 在主專案和服務專案中啟用 GKE API

  4. 如果您使用Google Cloud 控制台在服務專案中建立環境,您的帳戶必須在主專案中具備 compute.subnetworks.use 權限。否則,可用子網路清單不會包含主專案的子網路。如果您使用 gcloud、API 或 Terraform 建立環境,帳戶就不需要這項額外權限。

設定服務專案

如果服務專案中從未建立 Cloud Composer 環境,請在服務專案中佈建 Composer 服務代理程式帳戶:

gcloud beta services identity create --service=composer.googleapis.com

設定主專案

進一步設定主專案。

(私人 IP) 啟用 Private Google Access

如果您打算使用私人 IP 環境,請為主機專案中的子網路啟用私人 Google 存取權。您可以在下一個步驟中,為新的或現有的子網路設定網路資源。

如果您打算使用公用 IP 環境,我們仍建議為主機專案中的子網路啟用私人 Google 存取權。如果您選擇不使用私人 Google 存取權,請確保您不會封鎖默示 IPv4 允許輸出防火牆規則允許的流量。這是順利抵達 *.googleapis.com 端點的必要條件。

設定網路資源

選擇下列其中一個選項來分配和設定網路資源。針對每個選項,您必須為 Pod 和服務的次要 IP 範圍命名。

設定共用虛擬私有雲並附加服務專案

  1. 如果尚未完成,請設定共用 VPC。如果已設定共用虛擬私有雲,請跳至下一個步驟。

  2. 附加服務專案,用於代管 Cloud Composer 環境。

    附加專案時,請保留預設的虛擬私有雲網路權限。

將權限授予 Composer 服務代理帳戶

在主專案中:

  1. 編輯 Composer 服務代理人帳戶的權限, service-SERVICE_PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com)

  2. 為這個帳戶新增專案層級的角色:

    • 如果是私人 IP 環境,請新增 Composer Shared VPC Agent 角色。

    • 如果是公開 IP 環境,請新增 Compute Network User 角色。

將權限授予 Google API 服務代理帳戶

在主專案中:

  1. 編輯 Google API 服務代理人帳戶的權限, SERVICE_PROJECT_NUMBER@cloudservices.gserviceaccount.com

  2. 在專案層級新增另一個角色「Compute 網路使用者」 (compute.networkUser)。搭配共用虛擬私有雲使用代管執行個體群組時,必須符合這項規定,因為這類服務帳戶會執行建立執行個體等工作。

編輯 GKE 服務帳戶的權限

在主專案中,編輯 GKE 服務帳戶的權限,service-SERVICE_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com

針對每個服務帳戶,使用下列其中一個選項新增其他角色 compute.networkUser

  • 在子網路層級授予這個角色,服務帳戶才能設定 Cloud Composer 要求的 VPC 對等互連。在這種情況下,請明確指定環境要使用的子網路,因為環境的叢集可能沒有權限在網路中尋找子網路。

  • 在整個主專案的專案層級授予這個角色。在本例中,服務專案的 GKE 服務帳戶有權使用主專案中的任何子網路。

編輯服務專案的 GKE 服務帳戶權限

在主專案中,編輯服務專案的 GKE 服務帳戶權限。

為這個帳戶新增專案層級的另一個角色:Kubernetes Engine 託管服務代理程式使用者 (roles/container.hostServiceAgentUser)。

唯有如此,該服務專案的 GKE 服務帳戶才能使用主專案的 GKE 服務帳戶設定共用網路資源。

(私人 IP,選用) 設定防火牆規則,並連線至 Google 網域

在具有私人 IP 環境的共用 VPC 設定中,您可以選擇將所有流量透過屬於 private.googleapis.com 網域的幾個 IP 位址,路由至 Google API 和服務,並設定相應的防火牆規則。在此設定中,您的環境會透過只能從 Google Cloud內部路由傳送的 IP 位址,存取 Google API 和服務。如果共用虛擬私有雲設定使用 VPC Service Controls,請改為透過 restricted.googleapis.com 傳送流量。

如果共用虛擬私有雲設定使用私人 IP 環境:

  1. (選用) 設定連線至 Google API 和服務
  2. (選用) 設定防火牆規則

如果共用 VPC 設定使用 VPC Service Controls,請改用適用於 VPC Service Controls 環境的指示:

  1. 設定連線至 Google API 和服務
  2. 設定防火牆規則

結論

您已完成服務和主專案的共用虛擬私有雲網路設定。

現在您可以在服務專案中建立新環境,並使用主專案的虛擬私有雲網路。

後續步驟