我正在尝试在kubernetes上部署Apache Flink 1.6。遵循job manager high availabilty的教程 页。我已经从其日志中获得了一个工作正常的Zookeeper 3.10集群,我可以看到它是健康的,并且未配置为Kerberos或SASL。所有ACL规则都允许每个客户端读写znode。当启动群集时,所有的工作都按预期进行,每个JobManager和TaskManager窗格均已成功进入运行状态,并且可以从主JobManager的Web界面中看到已连接的TaskManager实例。但是,当我删除主JobManager的窗格时,其他JobManager窗格无法在群集中的任何JobManager-UI上选择带有以下错误消息的领导者。
{
"errors": [
"Service temporarily unavailable due to an ongoing leader election. Please refresh."
]
}
即使我重新启动此页面,也没有任何变化。它卡在此错误消息。
我的怀疑是,问题与high-availability.storageDir
选项有关。我已经在我的k8s集群上进行了工作(已通过CloudExplorer测试)minio s3部署。但是flink 无法将任何内容写入s3服务器。在这里您可以找到github-gist中的每个配置。
答案 0 :(得分:0)
根据日志,好像TaskManager
无法连接到新领导者。我认为这对于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-1
窗格并检查其IP地址是什么?
我认为您应该能够通过为每个JobManager
定义一个专用服务或使用Pod主机名来解决此问题。