我正在使用Airflow来编写和安排长期运行的批处理作业。我希望通过使用KubernetesExecutor或KubernetesPodOperator来利用Kubernetes(GKE)集群自动扩展的优势。
我在玩GKE节点池和节点选择器,并且通过将工作节点的数量上下缩放到零来达到预期效果。但是,我的旧管道中的一些Airflow操作员是通过文件系统共享数据的,这在Kubernetes中不应该开箱即用,因为Pod可能会安排在不同的节点上。
我能想到的一种解决方案是像单bash脚本那样在单个作业中融合依赖运算符,但是这样我就失去了重用现有Airflow运算符的好处。另一种方法可能是使用NFS之类的东西在多个工作程序之间共享登台目录。我想这可能会有性能和可伸缩性问题。
问题: 是否可以引导Kubernetes在同一节点上调度Pod,以便Airflow操作员可以通过主机文件系统共享数据?我曾尝试为此使用Pod关联性,但就我而言,这并没有使操作员在同一节点上重新安排时间。