Flink Operator Kubernetes HA异常排查:多JobManager故障后无法恢复
验证Flink Kubernetes HA正常工作的方法
1. 检查JobManager Leader选举状态
- 查看JobManager Pod日志,搜索
LeaderElectionService相关内容,确认是否有新Leader成功当选的记录,例如:Successfully elected leader: akka.tcp://flink@<jm-pod-ip>:6123/user/jobmanager_1 - 执行命令查看JobManager Pod状态,确认故障Pod被删除后新Pod是否正常启动并进入Running状态:
kubectl get pods -l app=flink,component=jobmanager
2. 检查HA存储目录内容
- 进入任意运行中的JobManager Pod,查看HA存储目录
/mnt/flink/recovery的文件结构:
正常状态下该目录应包含kubectl exec -it <jobmanager-pod-name> -- ls -l /mnt/flink/recoveryleader、checkpoints等子目录,leader目录下会有记录当前Leader信息的文件,比如job_manager_lock、resource_manager_lock
3. 验证TaskManager连接状态
- 查看TaskManager Pod日志,确认是否出现成功连接新Leader的日志,例如:
Successfully connected to ResourceManager akka.tcp://flink@<new-jm-ip>:6123/user/rpc/resourcemanager_1 - 执行命令查看TaskManager重启次数,正常HA场景下TaskManager不应无限重启:
kubectl get pods -l app=flink,component=taskmanager
4. 检查JobManager Service关联状态
- 查看Flink JobManager对应的Service(通常命名为
<cluster-id>-jobmanager),确认其Endpoints是否指向当前活跃的Leader JobManager Pod:
检查输出中的Endpoints字段,应显示当前运行中JM Pod的IP和端口kubectl describe svc flink-operator-poc-jobmanager
5. 手动触发Leader切换验证
- 主动删除当前Leader JobManager Pod:
kubectl delete pod <leader-jm-pod-name> - 观察以下指标确认HA正常:
- 新JobManager Pod在短时间内启动并完成Leader选举
- TaskManager自动重新连接新Leader,不再出现
Could not resolve ResourceManger address类报错 - Flink UI在Leader选举完成后(通常几秒到几十秒)恢复正常访问,不再显示
Service temporarily unavailable due to ongoing leader election
内容的提问来源于stack exchange,提问作者Programmer666
相关产品推荐
相关产品推荐

