在 GKE 集群上扩缩 Dataproc

如需扩缩 Dataproc on GKE 集群,请更新与 Spark 驱动程序或 Spark 执行程序角色关联的节点池的自动扩缩器配置。创建 Dataproc on GKE 集群时,您需要指定 Dataproc on GKE 节点池及其关联角色

设置节点池自动扩缩

创建 Dataproc on GKE 虚拟集群时,您可以为 Dataproc on GKE 节点池自动扩缩设置边界。如果未指定,系统会使用默认值自动扩缩 Dataproc on GKE 节点池(在 Dataproc on GKE 正式版发布时,默认值设置为最小值 = 1,最大值 = 10,可能会发生变化)。如需获取特定的最小和最大节点池自动扩缩值,请在创建 Dataproc on GKE 虚拟集群时设置这些值。

更新节点池自动扩缩

使用以下 GKE gcloud container node-pools update 命令更改 Dataproc on 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) \

Spark 自动扩缩的工作原理

  1. 提交作业时,驱动程序 Pod 会安排在与 Spark 驱动程序角色关联的节点池中运行。
  2. 驱动程序 Pod 会调用 GKE 调度器来创建执行器 Pod。
  3. 执行器 Pod 会在与 Spark Executor 角色关联的节点池池上调度。
  4. 如果节点池有足够的 Pod 容量,则 Pod 会立即开始运行。如果容量不足,GKE 集群自动扩缩器会对节点池进行纵向扩容以提供请求的资源,直到达到用户指定的限制为止。当节点池有多余的容量时,GKE 集群自动扩缩器会将节点池缩容到其用户指定的限制。