變更環境網路類型 (私人或公開 IP)

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

本頁說明 Managed Airflow (第 3 代) 中私人 IP 和公開 IP 環境網路類型的差異,並提供切換環境網路類型的操作說明。

如要僅在安裝 PyPI 套件時停用或啟用網際網路存取權,請參閱「在安裝 PyPI 套件時設定網際網路存取權」。

如要從環境啟用虛擬私有雲網路的存取權,請參閱「將環境連線至虛擬私有雲網路」。

關於環境網路類型

Managed Airflow (第 3 代) 使用兩種環境網路類型:

  • 公開 IP 網路

    • 環境的 Airflow 元件可以存取網際網路。這是預設的網路類型。

    • 在公開 IP 環境中,所有傳送至公開 IP 範圍的出站流量,都會透過預設的網際網路閘道轉送。這項限制包括 GKE 中使用的私人的公開 IP (PUPI),因為這些 IP 與公開 IP 範圍重疊。因此,預定傳送至 PUPI 位址的流量不會抵達私有 GKE 位址,而是會轉送至公用網際網路。如要啟用與 PUPI 範圍的連線,建議您將環境切換至私人 IP 網路,並將其連線至虛擬私有雲網路

    • 在公開 IP 環境中,Airflow 元件會從自動分配的公開 IP 位址和通訊埠建立傳出連線。如要讓公開 IP 環境使用預先決定的 IP 位址和連接埠,可以將虛擬私有雲網路連線至環境,然後切換至私人 IP。在這種情況下,Managed Airflow 會透過這個網路,將所有流量 (Google 服務流量除外) 導向至該網路。

  • 私人 IP 網路

    • 與公開 IP 網路相比,私人 IP 網路是更安全的選項。

    • 環境的 Airflow 元件無法存取網際網路。如果環境已連線至虛擬私有雲網路,網路設定會控管網際網路存取權。

    • 私人 IP 環境會透過 private.googleapis.com 範圍設定 Private Google Access,以便存取這個範圍支援的 Google API、服務和網域。

      如要進一步瞭解 private.googleapis.com,以及透過 private.googleapis.com 存取的服務和網域清單,請參閱虛擬私有雲說明文件中的「網路設定」。

    • 搭配 VPC Service Controls 的私人 IP 環境會透過 restricted.googleapis.com 範圍設定 Private Google Access,以便存取這個範圍支援的 Google API、服務和網域。

      如要進一步瞭解 restricted.googleapis.com,以及透過 restricted.googleapis.com 存取的服務和網域清單,請參閱虛擬私有雲說明文件中的「網路設定」。

    • 如果私人 IP 環境已連結至自訂虛擬私有雲網路,則所有流量都會路由至該虛擬私有雲網路,但透過 Private Google Access 傳送至 Google API、服務和網域的流量除外。這個方法可讓 Airflow 元件連線至 GKE 中的私用公開 IP (PUPI),因為流量會透過虛擬私有雲網路轉送,而不是傳送至公用網際網路。

Managed Airflow (第 2 代) 網路與 Managed Airflow (第 3 代) 網路比較

在 Managed Airflow (第 3 代) 中,私人 IP 環境不需要任何設定。

下列 Managed Airflow (第 2 代) 網路功能不再適用於 Managed Airflow (第 3 代):

  • 設定私人 IP 網路。您不需要指定 IP 範圍、網路,也不用設定連線能力和防火牆規則。

  • 設定 Private Service Connect。 在 Managed Airflow (第 3 代) 中,您不需要為 Private Service Connect 設定範圍。

  • 使用私人的公開 IP 範圍。這項功能可擴充可用的 IP 範圍,但這在 Managed Airflow (第 3 代) 中並非必要。

  • 使用 IP 偽裝代理程式。在 Managed Airflow (第 3 代) 中,您不需要設定叢集連線能力。

  • 設定授權網路。您無法在 Managed Airflow (第 3 代) 中存取環境的叢集。

Managed Airflow (第 3 代) 不支援下列 DNS 設定:

  • 代管 Airflow (第 3 代) 不支援使用者定義的 .internal DNS 區域。如果您為 .internal 建立 DNS 區域,就無法連線至該區域。

變更環境網路類型

控制台

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

    前往「環境」

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

  3. 前往「環境設定」分頁。

  4. 在「網路設定」部分,找出「網路類型」項目,然後按一下「編輯」

  5. 在「Networking type」(網路類型) 對話方塊中,選取:

    • 公開 IP 網路的公開 IP 環境 (預設)
    • 私人 IP 網路的私人 IP 環境
  6. 按一下 [儲存]

gcloud

下列 Google Cloud CLI 引數會變更環境的網路類型:

  • --enable-private-environment:私人 IP 網路的變更。
  • --disable-private-environment:變更為公開 IP 網路 (預設)。

改用私人 IP 網路:

gcloud beta composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --enable-private-environment

改用公開 IP 網路:

gcloud beta composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --disable-private-environment

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。

範例 (私人 IP):

gcloud beta composer environments update example-environment \
  --location us-central1 \
  --enable-private-environment

範例 (公開 IP):

gcloud beta composer environments update example-environment \
  --location us-central1 \
  --disable-private-environment

API

  1. 建立 environments.patch API 要求。

  2. 在這項要求中:

    1. updateMask 參數中,指定 config.private_environment_config.enable_private_environment 遮罩。

    2. 在要求主體的 enablePrivateEnvironment 欄位中:

      • 指定 true 即可改用私人 IP 網路。
      • 指定 false 即可改用公開 IP 網路 (預設)。

範例 (私人 IP):

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.private_environment_config.enable_private_environment

"config": {
  "privateEnvironmentConfig": {
    "enablePrivateEnvironment": true
  }
}

Terraform

config 區塊中的 enable_private_environment 欄位會指定環境的網路類型:

  • true:私人 IP 網路。
  • false 或省略:公開 IP 網路 (預設)。
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    enable_private_environment = PRIVATE_IP_STATUS

  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。
  • PRIVATE_IP_STATUS:私人 IP 為 true,公開 IP 為 false

範例 (私人 IP):

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    enable_private_environment = true

    ... other configuration parameters
  }
}

設定 Proxy 伺服器變數

您可以在環境中設定 http_proxyhttps_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_proxyhttps_proxy 環境變數。

後續步驟