flink ha jobmanager集群不能选举领导者

j9per5c4  于 2021-06-21  发布在  Flink
关注(0)|答案(1)|浏览(961)

我正在尝试在kubernetes上部署ApacheFlink1.6。在作业管理器的高可用性页面上遵循教程。我已经有一个工作zookeeper 3.10集群从它的日志我可以看到,它是健康的,没有配置为kerberos或sasl。所有的acl规则是让我们的每个客户端写入和读取znode。当我启动集群时,一切都按预期工作,每个jobmanager和taskmanager pod都成功地进入运行状态,我可以从主jobmanager的web ui中看到连接的taskmanager示例。但是当我删除主jobmanager的pod时,另一个jobmanager pod无法在集群中的任何jobmanager ui上选择具有以下错误消息的领导者。

{
  "errors": [
    "Service temporarily unavailable due to an ongoing leader election. Please refresh."
  ]
}

即使我重新启动这个页面也没有任何改变。它遇到了这个错误消息。我的怀疑是,问题与 high-availability.storageDir 选项。我已经在k8s集群中部署了一个正在工作的minios3(使用cloudexplorer进行了测试)。但是flink不能向s3服务器写入任何内容。在这里您可以找到github gist中的每个配置。

smdnsysy

smdnsysy1#

从日志来看 TaskManager 无法连接到新引线。我假设这对于webui也是一样的。日志显示它试图连接到 flink-job-manager-0.flink-job-svc.flink.svc.cluster.local/10.244.3.166:44013 . 我不能从日志上说 flink-job-manager-1 绑定到此ip。但我怀疑headless服务可能会返回多个ip,而flink会选择错误/旧的ip。你能登录到 flink-job-manager-1 pod并检查它的ip地址是什么?
我认为你应该能够通过定义每个 JobManager 一个专用服务,或者如果您使用pod主机名。

相关问题