我在两台 ec2 机器上运行我的 kafka-connect。因此,无论任务数量如何,这两台机器都会始终保持运行任务。因此在二手机器下。最近我在 kubernetes 上迁移了 kafka-connect。我实现了良好的 CPU/内存效率。
但是当 Kubernetes 缩减规模时,问题就出现了。pod 的缩减不会优雅地发生。
例如。假设有 2 个 pod p1 和 p2。p1 正在运行 3 个任务 t1,t2,t3 p2 正在运行 2 个任务 t4,t5(这里任务 t5 是源连接器的任务,它将数据从 postgres 带到 kafka)
当任何 pod 在缩减期间消失时,在其上运行的任务会在其他 pod 上重新平衡。假设 pod p2 消失了。
任务重新平衡后集群的新状态是:- P1 正在运行 5 个任务 t1,t2,t3,t4_new,t5_new
但是我的源连接器的日志显示其他一些任务(可能是在旧 pod t5 上运行的任务)仍在运行并访问 postgres 数据库数据。
我如何确保 pod 缩小规模时,它会优雅地发生,因为在 pod 上运行的所有任务都已停止。