EKS 中的 Flink 具有用于本地存储的持久性存储 (EBS)

Flink in EKS with persistence storage (EBS) for local store

如果本地存储使用EBS volume,有什么需要考虑的特殊处理吗?

更清楚地说,如果我在 AWS EKS 中 运行 1 个作业管理器和 5 个任务管理器(每个实例 1 个任务管理器)由本地存储 (RockDB) 的 EBS 卷和 S3 的检查点机制支持,其中一个任务管理器实例由于某种原因重新启动(将此实例称为 X),现在一个新节点加入(将此实例称为 Y)并从 S3 检索本地存储。再一次,假设新节点(节点 Y)从 EKS 离开,节点 X 加入 Flink 集群,在这种情况下会发生什么?由于节点 X 已经有持久化状态(但旧状态),flink 是否会删除旧状态并从 S3 下载最近状态? Flink 内部是如何处理的?

本地存储使用EBS卷有什么坑吗?

首先,使用本地SSD 比使用EBS 卷更好。 EBS 通过网络连接到实例,这使得 RocksDB 本地状态访问与其他网络活动竞争网络。本地 SSD 性能更好,它们是短暂的这一事实并不重要。

如果您配置本地恢复,那么任何存活的节点都将使用它们的本地状态而不是从 S3 获取最新的快照,而任何新节点将从 S3 检索它们的状态。如果集群的前成员 X 在流放一段时间后重新加入,它将删除它拥有的任何状态,并从 S3 获取它需要的状态。