Dataproc を GKE 仮想クラスタで作成または更新するときは、仮想クラスタがジョブの実行に使用するノードプールを 1 つ以上指定します(このクラスタは、指定したノードプールに「使用」または「関連付け」されるクラスタと呼ばれます)。指定したノードプールが GKE クラスタに存在しない場合、GKE の Dataproc は指定した設定で GKE クラスタにノードプールを作成します。Dataproc によって作成されたノードプールが存在する場合は、その設定が指定した設定と一致するかどうかを確認するために検証されます。
Dataproc on GKE ノードプールの設定
Dataproc が GKE 仮想クラスタで使用するノードプールに次の設定を指定できます(これらの設定は、GKE ノードプールの設定のサブセットです)。
accelerators
acceleratorCount
acceleratorType
gpuPartitionSize
*localSsdCount
machineType
minCpuPlatform
minNodeCount
maxNodeCount
preemptible
spot
*
メモ:
gpuPartitionSize
は、Dataproc API で設定できますGkeNodePoolAcceleratorConfig
。spot
は、Dataproc API GkeNodeConfig で設定できます。
ノードプールの削除
Dataproc on GKE クラスタが削除されても、クラスタで使用されているノードプールは削除されません。Dataproc on GKE クラスタで使用されていないノードプールを削除するには、ノードプールを削除するをご覧ください。
ノードプールのロケーション
仮想クラスタを作成または更新する際には、Dataproc on GKE 仮想クラスタに関連付けられたノードプールのゾーンのロケーションを指定できます。ノードプール ゾーンは、関連する仮想クラスタのリージョンに配置する必要があります。
ノードプールのロールのマッピング
ノードプールのロールは、Spark のドライバとエグゼキュータの動作に対して定義され、ノードプールのすべての種類の作業に対してデフォルトのロールが定義されます。Dataproc on GKE クラスタには、default
ロールが割り当てられているノードプールが少なくとも 1 つ必要です。他のロールの割り当ては任意です。
推奨: ロールの要件に基づいたノードタイプとノードサイズを使って、ロールタイプごとに個別のノードプールを作成します。
gcloud CLI 仮想クラスタの作成例:
gcloud dataproc clusters gke create "${DP_CLUSTER}" \ --region=${REGION} \ --gke-cluster=${GKE_CLUSTER} \ --spark-engine-version=latest \ --staging-bucket=${BUCKET} \ --pools="name=${DP_POOLNAME},roles=default \ --setup-workload-identity --pools="name=${DP_CTRL_POOLNAME},roles=default,machineType=e2-standard-4" \ --pools="name=${DP_DRIVER_POOLNAME},min=1,max=3,roles=spark-driver,machineType=n2-standard-4" \ --pools="name=${DP_EXEC_POOLNAME},min=1,max=10,roles=spark-executor,machineType=n2-standard-8"