Para escalonar um cluster do Dataproc no GKE, atualize a configuração do escalonador dos pools de nós associados às funções de driver ou executor do Spark. Você especifica os pools de nós do Dataproc no GKE e as funções associadas ao criar um cluster do Dataproc no GKE.
Definir o escalonamento automático do pool de nós
É possível definir os limites para o escalonamento automático do pool de nós do Dataproc no GKE ao criar um cluster virtual do Dataproc no GKE. Se não for especificado, os pools de nós do Dataproc no GKE serão dimensionados automaticamente com valores padrão. Na versão GA do Dataproc no GKE, os padrões são definidos como mínimo = 1 e máximo = 10, que estão sujeitos a alterações. Para receber valores mínimos e máximos específicos de escalonamento automático do pool de nós, defina-os ao criar o Dataproc no cluster virtual do GKE.
Atualizar o escalonamento automático do pool de nós
Use o comando
gcloud container node-pools update
do GKE abaixo para mudar a configuração de escalonamento automático de um pool de nós do Dataproc no GKE.
gcloud container node-pools update NODE_POOL_NAME \ --cluster=GKE_CLUSTER_NAME \ --region=region \ --enable-autoscaling \ --min-nodes=min nodes (must be <= max-nodes) \ --max-nodes=max nodes (must be >= min-nodes) \
Como funciona o escalonamento automático do Spark
- Quando um job é enviado, o pod do driver é programado para ser executado no pool de nós associado à função de driver do Spark.
- O pod do driver chama o programador do GKE para criar pods de executor.
- Os pods do executor são programados no pool de nós associado à função de executor do Spark.
- Se os pools de nós tiverem capacidade para os pods, eles vão começar a ser executados imediatamente. Se não houver capacidade suficiente, o escalonador automático do cluster do GKE vai aumentar o pool de nós para fornecer os recursos solicitados, até o limite especificado pelo usuário. Quando os pools de nós têm capacidade em excesso, o escalonador automático de cluster do GKE faz o escalonamento vertical do pool de nós para o limite especificado pelo usuário.