我们在 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 会对网络产生某种形式的影响吗?