我在 AWS 上运行了一个具有自动缩放功能的 k8s 集群。我使用集群来运行 Spark(主 + 工人)。其中一部分是工作节点的以下节点组:
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 个节点都已启动),则第二个作业必须再次等待更多节点启动。我想创造一种情况,即总是立即获取新的 Spark 作业,而不会产生“启动新节点”的开销。这对我来说尤其重要,因为数据集大小变化很大(从 MB 到 TB)并且用于探索性分析和 ETL,对于小数据集的探索性分析,我想要一个
问题:我可以指定准备接受新 Spark 作业的空闲/等待/备用节点的数量吗?
这是实现我想要的正确方法,还是有更好的方法?