在没有Flink中断的情况下推出K8

mm9b1k5b  于 12个月前  发布在  Apache
关注(0)|答案(1)|浏览(139)

在执行常规K8维护过程(如迁移/升级群集)时,是否需要采取任何特殊的预防措施?
为了具体起见,我通过Flink K8s Operator运行我的作业,我发现当推出新节点并将我的作业迁移到它们时,在某些情况下,它们会卡住和/或无法正确重启,或者多次重启,导致停机时间比预期的要长。
到目前为止,我的迁移/推出过程如下:

  • 创建新的K8s节点/示例
  • 封锁旧的被替换(我的工作正在运行)
  • 获取保存点
  • 排出旧节点
  • 等待,直到所有作业在新节点中显示为RUNNING和STABLE

我在这里没有什么特别的。但是,我想知道是否有任何专门针对Flink的最佳实践,可以帮助最大限度地减少这些维护窗口期间的停机时间/潜在故障。例如调整预算中断策略和/或pod亲和力,或者考虑使用多个jobmanager而不是一个jobmanager的HA设置。为了清楚起见,我所有的作业都是这样部署的(在应用程序模式下):

apiVersion: flink.apache.org/v1beta1
kind: FlinkDeployment
...
spec:
  ...
  mode: native

字符串
值得一提的是,他们的HA设置基于原生K8s模式(与Zookeeper相比)和单个作业管理器。

6qqygrtg

6qqygrtg1#

在这些维护窗口期间最大限度地减少停机时间和潜在故障的最佳实践可能非常主观,这里有一些建议可以降低错误幅度。
确保Flink K8s操作员和应用程序的版本稳定并经过测试,以确保一致性。使用最新版本可以增加系统的稳定性。
关于Flink的HA设置,请尝试部署多个JobManager,因为这可以确保更少的停机时间,并且始终处于打开状态,就像一个停机一样,另一个JobManager可以替换。
如果可能的话,也可以尝试使用Grafana和Prometheus等监控工具进行更全面的监控和真实的时间更新。
希望这些建议可以帮助您创建一个更有组织的系统,避免不必要的故障。

相关问题