对于前两个功能,因为K8S本身提供了对各类对象去定义Label的能力,使得用户也可以更好地进行对象的管理。
另外,用户也可以去定义节点选择器,将对象调度到指定节点上。这两个功能在生产环境中对用户是有很大的帮助的。因此,3.2.0版本也选择去实现支持这两个功能。
日志实时收集其实是对3.1.X版本的改进。之前,Apache DolphinScheduler只会在任K8S任务执行失败的时候去收集末尾起几行错误日志,但显然实时收集全量日志是对用户更加友好的一个功能。
我们跑一个K8S类型的任务,来看一下这三点增强的效果(见视频 01:11s-03:06s)。
Spark on K8S支持
在3.2.0版本中,Apache DolphinScheduler将支持Spark提交到原生K8S集群的模式。
以事先定义好的一个Spark on K8S的工作流为例,在这个Spark任务中,我们会发现已经添加了一个新的选择框—Namespace。如果用户选择了Namespace,即它非空时,我们认为用户是期待把这个Spark任务提交到K8S集群上做执行。
同样地,在这个任务中,用户也可以去自定义他们的Option,具体可以参考Spark官网,根据自己K8S集群的状态去定义他们的Option。
在Spark on K8S的任务中,我们也会实时地收集Driverpod日志,并对Driverpod进行生命周期管理。如果当前任务是执行成功的状态,我们会将Pod删除掉;如果执行失败,Pod会保留在集群中,供用户做诊断分析。
查看运行状态(见视频04:03s-结尾)。