【问题标题】:Flink Could not upload the jar files on Kubernetes with Calico. PUT operation failedFlink 无法使用 Calico 在 Kubernetes 上上传 jar 文件。 PUT 操作失败
【发布时间】:2018-03-28 13:50:41
【问题描述】:

我们在 AWS 的 Kubernetes 1.8 中运行 Flink。几个月来一直很好。 我已经设置了一个新的 k8s 集群。一切都一样除了我们启用了Calico(而不是只使用法兰绒)

就像 Flannel 一样,Calico 为我们提供了容器之间的网络。

启用 Calico 后,Flink 客户端在尝试向作业管理器发送 jar 文件时收到此错误:

org.apache.flink.client.program.ProgramInvocationException:程序 执行失败:无法将 jar 文件上传到作业管理器。 原因:java.io.IOException:无法检索 JobManager 的 blob 端口。 原因:java.io.IOException:PUT 操作失败:连接重置 原因:java.net.SocketException:连接重置

作业经理说:

java.lang.IllegalArgumentException:永久 BLOB 的 BLOB 寻址无效 2018-03-27 06:28:16,069 INFO org.apache.flink.runtime.jobmanager.JobManager - 提交作业 11433fc332c7d76100fd08e6d1b623b4(flink-job-connectivity-test)。 2018-03-27 06:28:16,085 INFO org.apache.flink.runtime.jobmanager.JobManager - 对 11433fc332c7d76100fd08e6d1b623b4 使用重启策略 NoRestartStrategy。 2018-03-27 06:28:16,096 INFO org.apache.flink.runtime.executiongraph.ExecutionGraph - 作业通过故障转移策略恢复:全图重启 2018-03-27 06:28:16,105 INFO org.apache.flink.runtime.jobmanager.JobManager - 在 master 上为作业 flink-job-connectivity-test (11433fc332c7d76100fd08e6d1b623b4) 运行初始化。 2018-03-27 06:28:16,105 INFO org.apache.flink.runtime.jobmanager.JobManager - 在 0 毫秒内成功在 master 上运行初始化。 2018-03-27 06:28:16,117 错误 org.apache.flink.runtime.jobmanager.JobManager - 未能提交作业 11433fc332c7d76100fd08e6d1b623b4 (ignite-flink-job-connectivity-test) java.lang.NullPointerException 在 org.apache.flink.util.Preconditions.checkNotNull(Preconditions.java:58) 在 org.apache.flink.runtime.checkpoint.CheckpointStatsTracker.(CheckpointStatsTracker.java:121) 在 org.apache.flink.runtime.executiongraph.ExecutionGraphBuilder.buildGraph(ExecutionGraphBuilder.java:228) 在 org.apache.flink.runtime.jobmanager.JobManager.org$apache$flink$runtime$jobmanager$JobManager$$submitJob(JobManager.scala:1277) 在 org.apache.flink.runtime.jobmanager.JobManager$$anonfun$handleMessage$1.applyOrElse(JobManager.scala:447) 在 scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:36)

文件似乎无法从客户端传输到作业管理器。我认为无效的 BLOB 寻址是因为作业管理器没有收到任何文件。

一切都是一样的。在一个集群上工作。对另一个不起作用。端口配置相同。每件文物都是一样的。

我们没有任何 NetworkPolicy。 但启用 Calico 会对网络产生某种形式的影响吗?

【问题讨论】:

    标签: docker kubernetes apache-flink project-calico


    【解决方案1】:

    问题解决了。我将此添加到我的 Flink 任务管理器清单文件中

    • 名称:数据 端口:6121
    • 名称:RPC 端口:6122
    • 名称:查询 端口:6125

    这在 flink conf 文件中:

    taskmanager.data.port:6121

    所以基本上我为任务管理器固定了一个数据端口。我已经为作业管理器(blob 服务器端口)做到了这一点。 这很好。但看起来 Calico 的工作方式与 Flannel 不同,它不能为任务管理器使用随机数据端口

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-17
      • 2020-07-03
      • 1970-01-01
      • 2020-06-04
      相关资源
      最近更新 更多