我正在尝试在 kubernetes 上部署 Apache Flink 1.6。按照 job manager high availabilty 上的教程进行操作
页。我已经有一个运行中的 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 有关。选项。我已经有一个工作(用 CloudExplorer 测试) minio s3 部署到我的 k8s 集群。但是flink 不能将任何内容写入 s3 服务器。在这里您可以找到来自 github-gist 的所有配置.

请您参考如下方法:

根据日志,它看起来好像 TaskManager无法连接到新的领导者。我认为这对于 web ui 是一样的。日志说它尝试连接到 flink-job-manager-0.flink-job-svc.flink.svc.cluster.local/10.244.3.166:44013 .我不能从日志中说 flink-job-manager-1绑定(bind)到这个IP。但我怀疑 headless 服务可能会返回多个 IP,而 Flink 会选择错误/旧的 IP。你能登录flink-job-manager-1吗? pod 并检查它的 IP 地址是什么?

我认为您应该能够通过为每个 JobManager 定义来解决此问题。专用服务,或者如果您使用 pod 主机名。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!