我正在尝试在kubernetes上部署Apache Flink 1.6。按照作业管理器高可用性 页面上的教程进行操作。我已经从它的日志中找到了一个有效的Zookeeper 3.10集群我可以看到它没有配置为Kerberos或SASL。所有ACL规则都允许每个客户端写入和读取znode。当我启动集群时,一切都按预期工作,每个JobManager和TaskManager窗口都成功进入运行状态,我可以从主JobManager的web-ui中看到连接的TaskManager实例。但是当我删除主JobManager的pod时,另一个JobManager pod无法在群集中的任何JobManager-UI上选择带有以下错误消息的leader。
{
"errors": [
"Service temporarily unavailable due to an ongoing leader election. Please refresh."
]
}
即使我重新启动此页面也没有任何变化。它坚持这个错误消息。我怀疑,问题与high-availability.storageDir选项有关。我已经有一个工作(使用CloudExplorer测试) minio s3部署到我的k8s集群。但flink 无法向s3服务器写任何东西。在这里你可以找到github-gist的每个配置。
我也遇到了楼主同样的报错,我这边是因为flink 配置文件 flink-conf.yaml 中 配置了 high-availability.cluster-id: /cluster_one,这时如果使用同一个配置文件启动多个flink yarn session,会导致 high-availability.cluster-id 冲突,
解决方法是:
1.去掉该配置项 high-availability.cluster-id: /cluster_one。
2.每启动一个flink yarn session之前,修改 high-availability.cluster-id的值为不同的值,然后同步配置文件到整个集群中
根据日志,它看起来好像TaskManager无法连接到新的leader。我认为这对于web ui来说是一样的。日志说它试图连接到flink-job-manager-0.flink-job-svc.flink.svc.cluster.local/10.244.3.166:44013。我不能从日志中说是否flink-job-manager-1绑定到此IP。但我怀疑无头服务可能会返回多个IP而Flink选择错误/旧的IP。你能登录flink-job-manager-1pod并检查它的IP地址是什么吗?
我认为您应该能够通过为每个JobManager专用服务定义或者使用pod主机名来解决此问题。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。