我在 AWS 上运行具有自动缩放功能的 k8s 集群。我使用集群来运行 Spark(master + workers)。其中一部分是工作节点的以下节点组:
managedNodeGroups:
- name: mng0
instanceType: m5.large
desiredCapacity: 0
privateNetworking: false # if only 'Private' subnets are given, this must be enabled
minSize: 4
maxSize: 50
securityGroups:
attachIDs: xxxxx
iam:
withAddonPolicies:
autoScaler: true
cloudwatch: true
使用此设置,我始终至少有 4 个节点可用于“热启动”,以防火花作业进入,以避免 +-2 分钟。现在,如果第二个 Spark 作业请求节点(并且 >4 个节点都已启动),那么第二个作业必须再次等待更多节点启动。我想创造一种情况,即始终立即获取新的火花作业,而没有“启动新节点”的开销。这对我来说尤其重要,因为数据集大小变化很大(从 MB 到 TB)并且用于探索性分析以及 ETL,我想要对小型数据集进行探索性分析
问题:我可以指定准备好接受新 Spark 作业的空闲/等待/备用节点的数量吗?
这是实现我想要的正确方法,还是有更好的方法?