Quando cria ou atualiza um cluster virtual do Dataproc no GKE, especifica um ou mais node pools que o cluster virtual vai usar para executar tarefas (este cluster é denominado cluster "usado por" ou "associado" aos node pools especificados). Se um conjunto de nós especificado não existir no cluster do GKE, o Dataproc no GKE cria o conjunto de nós no cluster do GKE com as definições que especificar. Se o conjunto de nós existir e tiver sido criado pelo Dataproc, este é validado para confirmar que as respetivas definições correspondem às definições especificadas.
Definições do node pool do Dataproc no GKE
Pode especificar as seguintes definições nos conjuntos de nós usados pelos seus clusters virtuais do Dataproc no GKE (estas definições são um subconjunto das definições do conjunto de nós do GKE):
accelerators
acceleratorCount
acceleratorType
gpuPartitionSize
*localSsdCount
machineType
minCpuPlatform
minNodeCount
maxNodeCount
preemptible
spot
*
Notas:
gpuPartitionSize
pode ser definido na API DataprocGkeNodePoolAcceleratorConfig
.spot
pode ser definido em GkeNodeConfig da API Dataproc.
Eliminação de node pool
Quando um cluster do Dataproc no GKE é eliminado, os conjuntos de nós usados pelo cluster não são eliminados. Consulte o artigo Elimine um node pool para eliminar node pools que já não estão a ser usados por clusters do Dataproc no GKE.
Localização do node pool
Pode especificar a localização da zona dos node pools associados ao cluster virtual do Dataproc no GKE quando cria ou atualiza o cluster virtual. As zonas do node pool têm de estar localizadas na região do cluster virtual associado.
Mapeamento de funções para node pool
As funções do conjunto de nós são definidas para o trabalho do controlador e do executor do Spark, com uma função predefinida definida para todos os tipos de trabalho por um conjunto de nós. Os clusters do Dataproc no GKE têm de ter, pelo menos, um conjunto de nós ao qual é atribuída a função default
.
A atribuição de outras funções é opcional.
Recomendação: crie pools de nós separados para cada tipo de função, com o tipo de nó e o tamanho com base nos requisitos da função.
Exemplo de criação de um cluster virtual da CLI gcloud:
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"