設定私人 IP 網路

代管 Airflow (第 3 代) | 代管 Airflow (第 2 代) | 代管 Airflow (舊版第 1 代)

本頁面說明如何為私人 IP 環境設定 Google Cloud專案網路。

在私人 IP 環境中,Managed Airflow 只會將私人 IP (RFC 1918) 位址指派給環境中代管的 Google Kubernetes Engine 和 Cloud SQL VM。

您也可以選擇使用私人使用的公開 IP 位址和 IP 偽裝代理程式,節省 IP 位址空間並使用非 RFC 1918 位址。

如要瞭解如何連線至環境中的資源,請參閱「私人 IP」。

具備 Private Service Connect 和虛擬私有雲對接的環境

根據預設,Managed Airflow (第 2 代) 會使用 Private Service Connect,因此您的私人 IP 環境會在內部通訊,不需使用虛擬私有雲對接,除非您在建立環境時另有指定。

如果沒有特定需求,建議使用具備 Private Service Connect 的環境,而非具備虛擬私有雲對接的環境。

事前準備

查看網路需求

確認專案的虛擬私有雲網路符合下列規定:

  • 確認私人 IP 區塊沒有衝突。如果虛擬私有雲網路和已建立的虛擬私有雲對接,與 Google 代管租戶專案中的虛擬私有雲網路有重疊的 IP 區塊,Managed Airflow 就無法建立環境。如要瞭解各區域使用的預設值,請參閱預設 IP 範圍表格。

  • 請確認 Managed Airflow GKE Pod 和服務有足夠的次要 IP 範圍。GKE 會搜尋次要 IP 範圍,以便進行 IP 別名設定。如果 GKE 找不到範圍,Managed Airflow 就無法建立環境。

  • 請確認子網路中的次要範圍數量不超過 30 個。請考量下列事項:

    • 私人 IP 環境的 GKE 叢集會在子網路中建立兩個次要範圍。您可以在同一區域中,為同一個虛擬私有雲網路建立多個子網路。
    • 次要範圍數量上限為 30 個。每個私人 IP 環境都需要兩個次要範圍,用於 Managed Airflow GKE Pod 和服務。
  • 請確認專案網路可容納單一虛擬私有雲網路的連線數量上限。可建立的私人 IP 環境數量上限,取決於虛擬私有雲網路中現有的虛擬私有雲對等互連連線數量。

選擇網路、子網路和網路範圍

選擇私人 IP 環境的網路範圍 (或使用預設範圍)。稍後建立私人 IP 環境時,會用到這些網路範圍。

如要建立私人 IP 環境,您必須具備下列資訊:

  • 虛擬私有雲網路 ID
  • 虛擬私有雲子網路 ID
  • 虛擬私有雲子網路中的兩個次要 IP 範圍:
    • pod 的次要 IP 範圍
    • 服務的次要 IP 範圍
  • 環境元件的 IP 範圍:

    如果環境使用 Private Service Connect:

    • GKE 控制層 IP 範圍:GKE 控制層的 IP 範圍。

      如果您為環境指定 GKE 層 IP 範圍,GKE 會在這個範圍內建立新的子網路,佈建 IP 位址,以便與 GKE 控制層通訊。否則,系統會使用 Managed Airflow 連線子網路範圍中指定的子網路。

    • Managed Airflow 連線子網路。Managed Airflow 連線子網路的 IP 範圍。您只能指定兩個 IP 位址的範圍。專案中的多個環境可以使用這個範圍。根據預設,這個範圍是環境的子網路 (虛擬私有雲子網路 ID)。

    如果環境使用虛擬私有雲對等互連:

    • GKE 控制層 IP 範圍:GKE 控制層的 IP 範圍。
    • Managed Airflow 租戶網路的 IP 範圍。Managed Airflow 租戶網路的 IP 範圍。這個網路會託管環境的 SQL Proxy 元件。
    • Cloud SQL IP 範圍。Cloud SQL 執行個體的 IP 範圍。

請參閱預設 IP 範圍表,瞭解各區域使用的預設值。

預設 IP 範圍

使用 Private Service Connect 的環境

區域 GKE 控制層 IP 範圍
africa-south1 172.16.64.0/23
asia-east1 172.16.42.0/23
asia-east2 172.16.0.0/23
asia-northeast1 172.16.2.0/23
asia-northeast2 172.16.32.0/23
asia-northeast3 172.16.30.0/23
asia-south1 172.16.4.0/23
asia-south2 172.16.50.0/23
asia-southeast1 172.16.40.0/23
asia-southeast2 172.16.44.0/23
australia-southeast1 172.16.6.0/23
australia-southeast2 172.16.56.0/23
europe-central2 172.16.36.0/23
europe-north1 172.16.48.0/23
europe-southwest1 172.16.58.0/23
europe-west1 172.16.8.0/23
europe-west10 172.16.62.0/23
europe-west12 172.16.62.0/23
europe-west2 172.16.10.0/23
europe-west3 172.16.12.0/23
europe-west4 172.16.42.0/23
europe-west6 172.16.14.0/23
europe-west8 172.16.60.0/23
europe-west9 172.16.46.0/23
me-central1 172.16.58.0/23
me-central2 172.16.64.0/23
me-west1 172.16.54.0/23
northamerica-northeast1 172.16.16.0/23
northamerica-northeast2 172.16.46.0/23
northamerica-south1 172.16.68.0/23
southamerica-east1 172.16.18.0/23
southamerica-west1 172.16.58.0/23
us-central1 172.16.20.0/23
us-east1 172.16.22.0/23
us-east4 172.16.24.0/23
us-east5 172.16.52.0/23
us-south1 172.16.56.0/23
us-west1 172.16.38.0/23
us-west2 172.16.34.0/23
us-west3 172.16.26.0/23
us-west4 172.16.28.0/23

具備虛擬私有雲對接的環境

區域 GKE 控制層 IP 範圍 Managed Airflow 租戶網路 IP 範圍 Cloud SQL IP 範圍
africa-south1 172.16.64.0/23 172.31.223.0/24 10.0.0.0/12
asia-east1 172.16.42.0/23 172.31.255.0/24 10.0.0.0/12
asia-east2 172.16.0.0/23 172.31.255.0/24 10.0.0.0/12
asia-northeast1 172.16.2.0/23 172.31.254.0/24 10.0.0.0/12
asia-northeast2 172.16.32.0/23 172.31.239.0/24 10.0.0.0/12
asia-northeast3 172.16.30.0/23 172.31.240.0/24 10.0.0.0/12
asia-south1 172.16.4.0/23 172.31.253.0/24 10.0.0.0/12
asia-south2 172.16.50.0/23 172.31.230.0/24 10.0.0.0/12
asia-southeast1 172.16.40.0/23 172.31.235.0/24 10.0.0.0/12
asia-southeast2 172.16.44.0/23 172.31.233.0/24 10.0.0.0/12
australia-southeast1 172.16.6.0/23 172.31.252.0/24 10.0.0.0/12
australia-southeast2 172.16.56.0/23 172.31.227.0/24 10.0.0.0/12
europe-central2 172.16.36.0/23 172.31.237.0/24 10.0.0.0/12
europe-north1 172.16.48.0/23 172.31.231.0/24 10.0.0.0/12
europe-southwest1 172.16.58.0/23 172.31.226.0/24 10.0.0.0/12
europe-west1 172.16.8.0/23 172.31.251.0/24 10.0.0.0/12
europe-west10 172.16.62.0/23 172.31.224.0/24 10.0.0.0/12
europe-west12 172.16.62.0/23 172.31.224.0/24 10.0.0.0/12
europe-west2 172.16.10.0/23 172.31.250.0/24 10.0.0.0/12
europe-west3 172.16.12.0/23 172.31.249.0/24 10.0.0.0/12
europe-west4 172.16.42.0/23 172.31.234.0/24 10.0.0.0/12
europe-west6 172.16.14.0/23 172.31.248.0/24 10.0.0.0/12
europe-west8 172.16.60.0/23 172.31.225.0/24 10.0.0.0/12
europe-west9 172.16.46.0/23 172.31.232.0/24 10.0.0.0/12
me-central1 172.16.58.0/23 172.31.226.0/24 10.0.0.0/12
me-central2 172.16.64.0/23 172.31.223.0/24 10.0.0.0/12
me-west1 172.16.54.0/23 172.31.228.0/24 10.0.0.0/12
northamerica-northeast1 172.16.16.0/23 172.31.247.0/24 10.0.0.0/12
northamerica-northeast2 172.16.46.0/23 172.31.232.0/24 10.0.0.0/12
northamerica-south1 172.16.68.0/23 172.31.221.0/24 10.0.0.0/12
southamerica-east1 172.16.18.0/23 172.31.246.0/24 10.0.0.0/12
southamerica-west1 172.16.58.0/23 172.31.226.0/24 10.0.0.0/12
us-central1 172.16.20.0/23 172.31.245.0/24 10.0.0.0/12
us-east1 172.16.22.0/23 172.31.244.0/24 10.0.0.0/12
us-east4 172.16.24.0/23 172.31.243.0/24 10.0.0.0/12
us-east5 172.16.52.0/23 172.31.229.0/24 10.0.0.0/12
us-south1 172.16.56.0/23 172.31.227.0/24 10.0.0.0/12
us-west1 172.16.38.0/23 172.31.236.0/24 10.0.0.0/12
us-west2 172.16.34.0/23 172.31.238.0/24 10.0.0.0/12
us-west3 172.16.26.0/23 172.31.242.0/24 10.0.0.0/12
us-west4 172.16.28.0/23 172.31.241.0/24 10.0.0.0/12

(選用) 設定連至 Google API 和服務

您也可以選擇透過屬於 private.googleapis.com 網域的多個 IP 位址,將所有流量轉送至 Google API 和服務。在這項設定中,環境會透過只能從 Google Cloud內部轉送的 IP 位址,存取 Google API 和服務。

如果私人 IP 環境也使用 VPC Service Controls,請改為按照使用 VPC Service Controls 的環境操作說明操作。

Managed Airflow 環境會使用下列網域:

  • *.googleapis.com用於存取其他 Google 服務。

  • *.composer.cloud.google.com 可讓您存取環境的 Airflow 網路伺服器。建立環境前,必須先套用這項規則。

    • 您也可以為特定區域建立規則。方法是使用 REGION.composer.cloud.google.com。將 REGION 替換為環境所在的區域,例如 us-central1。
  • (選用) 存取環境的 Airflow 網路伺服器時,會使用 *.composer.googleusercontent.com。只有在您從虛擬私有雲網路中執行的執行個體存取 Airflow 網路伺服器時,才需要這項規則,否則不需要。這項規則的常見情境是從虛擬私有雲網路內呼叫 Airflow REST API。

    • 您也可以為特定環境建立規則。如要這麼做,請使用 ENVIRONMENT_WEB_SERVER_NAME.composer.googleusercontent.com。將 ENVIRONMENT_WEB_SERVER_NAME 替換為環境 Airflow UI 網址的專屬部分,例如 bffe6ce6c4304c55acca0e57be23128c-dot-us-central1。
  • *.pkg.dev 用於取得環境映像檔,例如建立或更新環境時。

  • *.gcr.io無論 Managed Airflow 版本為何,GKE 都必須連線至 Container Registry 網域。

設定與 private.googleapis.com 端點的連線:

網域 DNS 名稱 CNAME 記錄 A 記錄
*.googleapis.com googleapis.com. DNS 名稱:*.googleapis.com.
資源記錄類型:CNAME
標準名稱:googleapis.com.
資源記錄類型:A
IPv4 位址:199.36.153.8、199.36.153.9、199.36.153.10、199.36.153.11
*.composer.cloud.google.com composer.cloud.google.com. DNS 名稱:*.composer.cloud.google.com.
資源記錄類型:CNAME
標準名稱:composer.cloud.google.com.
資源記錄類型:A
IPv4 位址:199.36.153.8、199.36.153.9、199.36.153.10、199.36.153.11
*.composer.googleusercontent.com
(選用,請參閱說明)
composer.googleusercontent.com. DNS 名稱:*.composer.googleusercontent.com.
資源記錄類型:CNAME
標準名稱:composer.googleusercontent.com.
資源記錄類型:A
IPv4 位址:199.36.153.8、199.36.153.9、199.36.153.10、199.36.153.11
*.pkg.dev pkg.dev. DNS 名稱:*.pkg.dev.
資源記錄類型:CNAME
標準名稱:pkg.dev.
資源記錄類型:A
IPv4 位址:199.36.153.8、199.36.153.9、199.36.153.10、199.36.153.11
*.gcr.io gcr.io. DNS 名稱:*.gcr.io.
資源記錄類型:CNAME
標準名稱:gcr.io.
資源記錄類型:A
IPv4 位址:199.36.153.8、199.36.153.9、199.36.153.10、199.36.153.11

如要建立 DNS 規則,請按照下列步驟操作:

  1. 建立新的 DNS 區域,並使用「DNS name」(DNS 名稱) 做為這個區域的 DNS 名稱。

    範例:pkg.dev.

  2. 新增 CNAME 記錄的記錄集。

    範例:

    • DNS 名稱:*.pkg.dev.
    • 資源記錄類型:CNAME
    • 標準名稱:pkg.dev.
  3. 新增 A 記錄的記錄集:

    範例:

    • 資源記錄類型:A
    • IPv4 位址:199.36.153.8、199.36.153.9、199.36.153.10、199.36.153.11

詳情請參閱「設定連至 Google API 和服務的私人連線」。

(選用) 設定防火牆規則

只有在專案具有非預設防火牆規則時,才需要執行這個步驟,例如覆寫默示防火牆規則的規則,或修改預設網路中預先填入的規則。

舉例來說,如果防火牆規則拒絕所有輸出流量,Managed Airflow 可能無法建立環境。為避免發生問題,請定義遵循清單且優先順序高於全域 deny 規則的選擇性 allow 規則。

設定虛擬私有雲網路,允許來自環境的流量:

  • 請參閱「使用防火牆規則」,瞭解如何檢查、新增及更新虛擬私有雲網路的規則。
  • 使用連線能力工具驗證 IP 範圍之間的連線能力。
  • 您可以使用網路標記進一步限制存取權。您可以在建立環境時設定這些標記。
說明 方向 動作 來源或目的地 通訊協定 通訊埠
DNS 輸出 允許 任何目的地 (0.0.0.0/0) 或 DNS 伺服器 IP 位址 TCP、UDP 53
Google API 和服務 輸出 允許 您為 Google API 和服務選擇的網域 IP 位址範圍。如果您使用預設值,請參閱「預設網域的 IP 位址」。 TCP 443
環境的叢集節點 輸出 允許 環境子網路的主要 IP 位址範圍 TCP、UDP 全部
環境叢集的 Pod 輸出 允許 環境子網路中 Pod 的次要 IP 位址範圍 TCP、UDP 全部
環境的叢集控制層 輸出 允許 GKE 控制層 IP 範圍 TCP、UDP 全部
(如果環境使用 Private Service Connect) 連線子網路 輸出 允許 Managed Airflow 連線子網路範圍 TCP 3306、3307、19090
(如果環境使用虛擬私有雲對接) 租戶網路 輸出 允許 Managed Airflow 租戶網路 IP 範圍 TCP 3306、3307、19090

如要取得環境叢集的 IP 範圍,請按照下列步驟操作:

  • Pod、Service 和控制層位址範圍會顯示在環境叢集的「Clusters」(叢集) 頁面:

    1. 前往 Google Cloud 控制台的「Environments」(環境) 頁面。

      前往「Environments」(環境)

    2. 在環境清單中,按一下環境名稱。「Environment details」(環境詳細資料) 頁面隨即開啟。

    3. 前往「Environment configuration」(環境設定) 分頁。

    4. 點選「查看叢集詳細資料」連結。

  • 您可以在「Environment configuration」(環境設定) 分頁中,查看環境的 Managed Airflow 租戶網路 IP 範圍。

  • 您可以在「Environment configuration」(環境設定) 分頁中,查看環境的子網路 ID 和 Managed Airflow 連線子網路 ID。如要取得子網路的 IP 範圍,請前往「VPC Networks」(虛擬私有雲網路) 頁面,然後按一下網路名稱查看詳細資料:

    前往「VPC Networks」(虛擬私有雲網路) 頁面

設定 Proxy 伺服器變數

您可以在環境中設定 http_proxy 和 https_proxy 環境變數。在環境叢集容器中執行的網路用戶端會使用這些標準 Linux 變數,透過指定的 Proxy 轉送流量。

NO_PROXY 變數預設會設為 Google 網域清單、環境叢集 Compute Engine 中繼資料伺服器的 IP 位址,以及 localhost,以便將這些項目排除在 Proxy 之外:

.google.com,.googleapis.com,metadata.google.internal,169.254.169.254,localhost

如果 Proxy 未設定為處理 Google 服務的流量,這項設定可讓您建立具有 http_proxy 和 https_proxy 環境變數的環境。

後續步驟