プライベート IP Cloud Composer 環境の構成

このページでは、プライベート IP Cloud Composer 環境を構成するための情報を提供します。

プライベート IP を有効にすると、環境内のマネージド Google Kubernetes Engine と Cloud SQL VM にプライベート IP(RFC 1918)アドレスのみが割り当てられます。

環境内のリソースへの接続については、プライベート IP をご覧ください。

始める前に

アクセス制御

ネットワークの要件

プロジェクトの VPC ネットワークが次の要件を満たしていることを確認してください。

  • プライベート IP ブロックの競合がないことを確認してください。Google 管理のテナント プロジェクトで、VPC ネットワークとその確立された VPC ピアに、VPC ネットワークと重複する IP ブロックが存在する場合、Cloud Composer で環境の作成ができなくなります。 各リージョンで使用されるデフォルトについては、下の表の [ウェブサーバーの IP 範囲] 列をご覧ください。
  • Cloud Composer GKE ポッドとサービスに対して十分なセカンダリ IP 範囲が設定されていることを確認してください。GKE では IP エイリアス設定の際にセカンダリ IP 範囲が検索されます。GKE で範囲が見つからなかった場合、Cloud Composer で環境の作成ができなくなります。
  • VPC ネットワークの VPC ピアリング接続の数が 25 を超えないようにしてください。次の点を考慮してください。
    • プライベート IP Cloud Composer 環境ごとに、Cloud Composer によりテナント プロジェクト ネットワークに対して 1 つのピアリング接続が作成されます。
    • 限定公開 GKE クラスタによって、VPC ネットワーク内に別の VPC ピアリング接続が作成されます。
    • Cloud Composer がサポートできるプライベート IP Cloud Composer 環境の最大数は 12 です。
    • 作成できるプライベート IP Cloud Composer 環境の最大数は、VPC ネットワークで使用している VPC ピアリング接続の数によって異なります。
  • サブネットワーク内のセカンダリ範囲の数が 30 を超えないようにしてください。次の点を考慮してください。
    • プライベート IP Cloud Composer 環境用の GKE クラスタは、サブネットワーク内に 2 つのセカンダリ範囲を作成します。同じ VPC ネットワークの同じリージョンに複数のサブネットワークを作成できます。
    • サポート対象のセカンダリ範囲の最大数は 30 です。各プライベート IP Cloud Composer 環境は Cloud Composer GKE Pod と Service 用に 2 個のセカンダリ範囲を必要とするため、各サブネットワークは最大 15 個のプライベート IP Cloud Composer 環境をサポートします。

VPC ネイティブ構成

Cloud Composer は、ご使用の環境で VPC ネイティブ GKE クラスタをサポートします。

環境の作成中に、VPC ネイティブを有効にし(エイリアス IP を使用)、プライベート IP を有効にせずに、IP 割り当てなどのネットワーキングを構成できます。

Airflow タスクがプライベート IP 経由でアクセス可能な他の VM と通信するには VPC ネイティブ クラスタが必要なため、VPC ネイティブを有効にして、プライベート IP 環境を構成する必要もあります。

次のセクションでは、プライベート IP とセカンダリ範囲の構成の例を示します。

プライベート IP Cloud Composer 環境とセカンダリ範囲の構成

Console

  1. Google Cloud Console で [環境の作成] ページを開きます。

    [環境の作成] ページを開く

  2. 環境を構成します
  3. [VPC ネイティブの有効化(エイリアス IP を使用)] にチェックを入れます。
  4. 必要に応じて、IP エイリアス設定のセカンダリ範囲など、環境の GKE クラスタのネットワーク構成を入力します。
  5. [プライベート IP 環境] をオンにして、プライベート IP Cloud Composer 環境を有効にします。
  6. [GKE クラスタ マスターのプライベート IP 範囲] で、マスターの VPC の IP 範囲を入力するか、デフォルトの IP 範囲を使用します。
  7. [外部 IP アドレスを使用して GKE マスターにアクセスする] をオンにして、環境で GKE クラスタのパブリック エンドポイントを有効にします。

    クラスタは、パブリック エンドポイント アクセスが無効として構成されます。

  8. [ウェブサーバーのプライベート IP] で、Airflow ウェブサーバーの IP 範囲を入力するか、デフォルトの IP 範囲を使用します。
  9. [Cloud SQL プライベート IP] で、Cloud SQL インスタンスの IP 範囲を入力するか、デフォルトの IP 範囲を使用します。
  10. 環境の構成が終了したら、[作成] をクリックします。

gcloud

必要に応じて、プライベート IP Cloud Composer 環境に次の引数を含めて、環境を構成します。

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION --enable-private-environment \
    OTHER_ARGUMENTS

次のパラメータは必須です(省略可能な場合を除く)。

  • ENVIRONMENT_NAME は、環境の名前です。パターン ^[a-z](?:[-0-9a-z]{0,62}[0-9a-z])?$ と一致している必要があります。
  • LOCATION は、環境が配置される Compute Engine のリージョンです。
  • --enable-private-environment を指定すると、プライベート IP Cloud Composer 環境が有効になります。
  • --enable-ip-alias を指定すると、エイリアス IP アドレスを使用して VPC ネイティブが有効になります。 このパラメータは、--enable-private-environment を使用する場合、または Pod や Service のセカンダリ範囲を構成する場合に必要です。
    • --cluster-secondary-range-name または --cluster-ipv4-cidr を使用して、Pod のセカンダリ範囲を構成します。
    • --services-secondary-range-name または --services-ipv4-cidr を使用して、Service のセカンダリ範囲を構成します。
  • master-ipv4-cidr を使用して、マスターの VPC のプライベート RFC 1918 範囲を指定します。
  • (省略可)enable-private-endpoint を指定すると、環境内の GKE クラスタに対してパブリック エンドポイントが有効になります。クラスタは、パブリック エンドポイント アクセスが無効として構成されます。

次の例では、n1-standard-2 マシンを使用する us-central1 リージョンで、サポートされている最新の Cloud Composer イメージ バージョンを実行する環境を作成します。

この環境ではプライベート IP が有効になり、192.168.2.0/28 は GKE マスターの VPC の IP 範囲です。

gcloud composer environments create test-environment \
    --location us-central1 \
    --zone us-central1-f \
    --machine-type n1-standard-2 \
    --image-version composer-latest-airflow-x.y.z \
    --enable-ip-alias \
    --enable-private-environment \
    --enable-private-endpoint \
    --master-ipv4-cidr 192.168.2.0/28 

API

Cloud Composer REST API を使用して新しい Cloud Composer 環境を作成するには、environments.create API リクエストを作成し、Environment リソースに構成情報を入力します。

たとえば、次の API リクエストはゾーン us-central1-cprivateip-test という名前の新しい環境を作成します。

POST https://composer.googleapis.com/v1/projects/test-project/locations/us-central1/environments{
  "config":{
    "nodeConfig":{
      "ipAllocationPolicy":{
        "useIpAliases":true,
        "clusterIpv4CidrBlock":"10.56.0.0/14",
        "servicesIpv4CidrBlock":"10.122.0.0/20"
      },
      "location":"projects/test-project/zones/us-central1-c",
      "network":"projects/test-project/global/networks/default",
      "oauthScopes":[

      ],
      "subnetwork":"projects/test-project/regions/us-central1/subnetworks/default",
      "tags":[

      ]
    },
    "nodeCount":3,
    "privateEnvironmentConfig":{
      "cloudSqlIpv4CidrBlock":"10.32.0.0/12",
      "webServerIpv4CidrBlock":"172.30.240.0/24",
      "enablePrivateEnvironment":true,
      "privateClusterConfig":{
        "enablePrivateEndpoint":false,
        "masterIpv4CidrBlock":"172.18.50.0/28"
      }
    },
    "softwareConfig":{
      "airflowConfigOverrides":{

      },
      "envVariables":{

      },
      "pythonVersion":"3",
      "pypiPackages":{

      }
    }
  },
  "labels":{
    "purpose":"test"
  },
  "name":"projects/test-project/locations/us-central1/environments/privateip-test"
}

デフォルトの IP 範囲

地域 GKE マスター IP 範囲 ウェブサーバーの IP 範囲 Cloud SQL の IP 範囲
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
australia-southeast1 172.16.6.0/23 172.31.252.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-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-west6 172.16.14.0/23 172.31.248.0/24 10.0.0.0/12
northamerica-northeast1 172.16.16.0/23 172.31.247.0/24 10.0.0.0/12
southamerica-east1 172.16.18.0/23 172.31.246.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-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