VPC ネットワークを構成する

Google Cloud Managed Lustre は Virtual Private Cloud(VPC)内で実行されます。VPC は、 ネットワーキング機能を Compute Engine 仮想マシン(VM)インスタンスGoogle Kubernetes Engine(GKE)クラスタ、および サーバーレス ワークロードに提供します。

Managed Lustre インスタンスとクライアント Compute Engine VM または Google Kubernetes Engine クラスタを作成するときに、同じ VPC ネットワークを指定する必要があります。

必要な権限

次の IAM 権限を付与されている必要があります。

  • serviceusage.services.enable
  • compute.networks.create
  • compute.addresses.create
  • compute.addresses.get
  • compute.firewalls.create
  • servicenetworking.services.addPeering

これらの権限は、次の事前定義ロールをすべて追加することで付与できます。

または、特定の権限 を含むカスタムロールを作成します。

ユーザーにロールを付与するには:

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:EMAIL_ADDRESS"
  --role=ROLE

VPC を作成して構成する

  1. サービス ネットワーキングを有効にする。

    gcloud services enable servicenetworking.googleapis.com
    
  2. カスタムモードで VPC ネットワークを作成します。

    gcloud compute networks create NETWORK_NAME \
      --subnet-mode=custom \
      --mtu=8896
    
  3. GKE または Compute Engine リソースのプライマリ サブネットを作成します。

    gcloud compute networks subnets create SUBNET_NAME \
      --network=NETWORK_NAME \
      --range=10.128.0.0/20 \
      --region=REGION
    
  4. プライベート サービス アクセスに IP 範囲を割り振ります。

    この内部 IP 範囲は、プライベート サービス アクセス接続に使用されます。この接続は、VPC ネットワークと、Managed Lustre リソースがプロビジョニングされる Google マネージド ネットワークをピアリングします。この割り振られた範囲は、Managed Lustre インスタンスに IP を提供するために使用されます。VPC ネットワーク内のサブネットと重複することはできません。

    各 Managed Lustre インスタンスには、プレフィックス長が 23 以上の連続した CIDR ブロックが必要です。

    複数の Managed Lustre インスタンスを作成する場合や、他の Google Cloud サービスを使用する場合は、 作成を許可するために、/20 の大きな IP 範囲を作成することをおすすめします。

    gcloud compute addresses create IP_RANGE_NAME \
      --global \
      --purpose=VPC_PEERING \
      --prefix-length=20 \
      --description="Managed Lustre VPC Peering" \
      --network=NETWORK_NAME
    
  5. 前の手順で作成した範囲に関連付けられた CIDR ブロックを取得します。

    CIDR_BLOCK=$(
      gcloud compute addresses describe IP_RANGE_NAME \
        --global  \
        --format="value[separator=/](address, prefixLength)"
    )
    
  6. 作成した IP 範囲からの TCP トラフィックを許可するファイアウォール ルールを作成します。

    gcloud compute firewall-rules create FIREWALL_NAME \
      --allow=tcp:988,tcp:6988 \
      --network=NETWORK_NAME \
      --source-ranges=$CIDR_BLOCK
    
  7. ピアリングを接続します。

    gcloud services vpc-peerings connect \
      --network=NETWORK_NAME \
      --ranges=IP_RANGE_NAME \
      --service=servicenetworking.googleapis.com
    

multi-NIC 用に追加のサブネットを作成する

複数のネットワーク インターフェース カード(multi-NIC)を使用して帯域幅を集約する場合は、NIC ごとに VPC ネットワーク内に個別のサブネットを作成する必要があります。

multi-NIC のメリットを得るには、通常の VPC に接続された複数の物理 NIC を持つ Compute Engine マシンタイプを使用する必要があります。RDMA ネットワーク プロファイルを使用して VPC に接続する NIC は、一般的なネットワーク帯域幅の増加には使用できません。詳細については、 ネットワーキングと GPU マシンをご覧ください。

追加の物理 NIC のサブネットを作成するには:

gcloud compute networks subnets create SUBNET_NAME_2 \
  --network=NETWORK_NAME \
  --range=10.130.0.0/20 \
  --region=REGION

追加の NIC ごとにこの手順を繰り返します。各サブネットの IP 範囲が重複しないようにしてください。

VPC Service Controls

Managed Lustre は VPC Service Controls(VPC-SC)をサポートしています。 詳細については、サービス境界を使用してインスタンスを保護する をご覧ください。

VPC の設定のトラブルシューティング

サービス servicenetworking.googleapis.com のピアリングを追加する権限が拒否されました

ERROR: (gcloud.services.vpc-peerings.connect) User [$(USER)] does not have
permission to access services instance [servicenetworking.googleapis.com]
(or it may not exist): Permission denied to add peering for service
'servicenetworking.googleapis.com'.

このエラーは、ユーザー アカウントに servicenetworking.services.addPeering IAM 権限がないことを意味します。

アカウントに次のいずれかのロールを追加する手順については、IAM を使用したアクセス制御をご覧ください。

  • roles/compute.networkAdmin または
  • roles/servicenetworking.networksAdmin

CreateConnection で割り振り範囲を変更できない

ERROR: (gcloud.services.vpc-peerings.connect) The operation
"operations/[operation_id]" resulted in a failure "Cannot modify allocated
ranges in CreateConnection. Please use UpdateConnection."

このエラーは、異なる IP 範囲でこのネットワークに VPC ピアリングをすでに作成している場合に返されます。考えられる解決法は次の 2 つです。

既存の IP 範囲を置き換えます。

gcloud services vpc-peerings update \
  --network=NETWORK_NAME \
  --ranges=IP_RANGE_NAME \
  --service=servicenetworking.googleapis.com \
  --force

または、新しい IP 範囲を既存の接続に追加します。

  1. ピアリングの既存の IP 範囲のリストを取得します。

    EXISTING_RANGES="$(
      gcloud services vpc-peerings list \
        --network=NETWORK_NAME \
        --service=servicenetworking.googleapis.com \
        --format="value(reservedPeeringRanges.list())" \
        --flatten=reservedPeeringRanges
    )
    
  2. 次に、新しい範囲をピアリングに追加します。

    gcloud services vpc-peerings update \
      --network=NETWORK_NAME \
      --ranges="${EXISTING_RANGES}",IP_RANGE_NAME \
      --service=servicenetworking.googleapis.com
    

IP アドレス範囲が枯渇しました

IP アドレス範囲が枯渇したというエラーでインスタンスの作成に失敗した場合は、次の操作を行います。

ERROR: (gcloud.alpha.Google Cloud Managed Lustre.instances.create) FAILED_PRECONDITION: Invalid
resource state for "NETWORK_RANGES_NOT_AVAILABLE": IP address range exhausted

VPC ガイドに沿って、既存のプライベート接続を変更して IP アドレス範囲を追加します。

プレフィックス長は /20(4,096 アドレス)以上をおすすめします。

次のステップ