0

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

就像 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 信息 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 at 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:

看起来文件无法从客户端传输到作业管理器。我相信无效的 BLOB 寻址是因为作业管理器没有收到任何文件。

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

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

4

1 回答 1

0

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

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

这在 flink conf 文件中:

taskmanager.data.port:6121

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

于 2018-03-28T05:50:41.450 回答