Kubernetes 连接Flink FLIP-6的ResourceManager“开始新的”;会话作业“;

Kubernetes 连接Flink FLIP-6的ResourceManager“开始新的”;会话作业“;,kubernetes,apache-flink,flink-streaming,Kubernetes,Apache Flink,Flink Streaming,我想用会话作业创建一个新的k8s部署;并在flink-conf.yaml中部署一个taskmanager: jobmanager.rpc.address: analytics-job jobmanager.rpc.port: 6123 然而,我的TaskManager似乎拒绝使用端口6123,总是选择高端口?分析作业的k8s服务如下所示: apiVersion: v1 kind: Service metadata: name: analytics-job spec: type: Clu

我想用会话作业创建一个新的k8s部署;并在
flink-conf.yaml
中部署一个
taskmanager

jobmanager.rpc.address: analytics-job
jobmanager.rpc.port: 6123
然而,我的TaskManager似乎拒绝使用端口6123,总是选择高端口?分析作业的k8s服务如下所示:

apiVersion: v1
kind: Service
metadata:
  name: analytics-job
spec:
  type: ClusterIP
  ports:
  - name: rpc
    port: 6123
  - name: blob
    port: 6124
  - name: query
    port: 6125
    # nodePort: 30025
  - name: ui
    port: 8081
    # nodePort: 30081
  selector:
    app: analytics
    stack: flink
    component: job-cluster

如您所见,我尝试了ClusterIP和NodePort服务类型。我宁愿使用ClusterIP类型,因为这样会在我的k8s作业/
独立作业.sh
Flink进程前面创建一个内部负载平衡器。

你没有得到
节点报告
的原因,比如
6123
6124
,Kubernetes主机分配的
6125
是有一个
节点报告
的端口范围,该范围由主机上的
--服务节点端口范围
选项标识。该范围的默认值为
30000-32767

您只需将该标志添加到kubeapi服务器配置中,通常在
/etc/kubernetes/manifests/kube apiserver.yaml
下,并使用以下值:

--service-node-port-range=6000-32767
请记住,节点上运行的某些其他服务可能存在端口重叠


因为边节点是一项正在进行的工作(在本文撰写时),您可以看到它在Kubernetes中非常简单,因为jobmanager并没有真正动态地创建taskmanager和分配资源。

您没有获得
节点报告的原因,如
6123
6124
,Kubernetes主机分配的
6125
是有一个
节点报告
的端口范围,该范围由主机上的
--服务节点端口范围
选项标识。该范围的默认值为
30000-32767

您只需将该标志添加到kubeapi服务器配置中,通常在
/etc/kubernetes/manifests/kube apiserver.yaml
下,并使用以下值:

--service-node-port-range=6000-32767
请记住,节点上运行的某些其他服务可能存在端口重叠


因为侧节点是一项正在进行的工作(在本文撰写时),在Kubernetes中,您可以看到它非常简单,因为jobmanager并不是真正动态地创建taskmanager和分配资源。

在flink-conf.yaml中,设置

high-availability.jobmanager.port: 6123

这将使资源管理器连接回到您希望它使用的静态端口。

在flink-conf.yaml中,设置

high-availability.jobmanager.port: 6123

这将使资源管理器连接回到您希望它使用的静态端口。

这是一个很好的注释,所以我给了您+1,但这不是答案。1) k8s中的问题不是分配节点端口范围;我的问题是“为什么到资源管理器的连接会失败”,但你的答案是“如何使编号较低的端口可绑定”,这是不同的;因为即使我做了更改,连接仍将在随机高端口上进行,因为服务的节点端口和日志中的实际端口不相关。您也说“FLIP-6”是WIP,但这也不是真的;如果您查看链接的问题,您会发现它标记为已完成。还有一个全新的平台(dA平台/Ververica平台),它建立在您自己正确运行的基础上;这似乎使用了和我在这里遇到的问题完全相同的概念。最后,我不想要“服务重叠”,我想要一个没有服务重叠的工作部署。没问题。在Kubernetes中,节点端口是物理机器上的实际端口,也是jobmanager和taskmanager实际绑定到的端口。
port
参数只是容器中的一个内部端口。静态端口是K8s现在支持的
FLIP-6
,动态端口仍然是WIP:。Mesos和纱线有更天然的支持。dA平台可以工作,但它是一个付费的解决方案。希望有帮助。我想使用静态端口,但如果配置了HA,资源管理器连接总是通过高端口进行,而不是我在服务中配置的静态端口。另外,我认为你链接到的问题早已过时,与FLIP-6无关;据我所知,这是它的“被动”变体。如果你使用相同的Kubernetes服务来公开你的jobmanager和TaskManager,那就不是了。这是一个很好的评论,所以我给了你+1,但这不是答案。1) k8s中的问题不是分配节点端口范围;我的问题是“为什么到资源管理器的连接会失败”,但你的答案是“如何使编号较低的端口可绑定”,这是不同的;因为即使我做了更改,连接仍将在随机高端口上进行,因为服务的节点端口和日志中的实际端口不相关。您也说“FLIP-6”是WIP,但这也不是真的;如果您查看链接的问题,您会发现它标记为已完成。还有一个全新的平台(dA平台/Ververica平台),它建立在您自己正确运行的基础上;这似乎使用了和我在这里遇到的问题完全相同的概念。最后,我不想要“服务重叠”,我想要一个没有服务重叠的工作部署。没问题。在Kubernetes中,节点端口是物理机器上的实际端口,也是jobmanager和taskmanager实际绑定到的端口。
port
参数只是容器中的一个内部端口。静态端口是K8s现在支持的
FLIP-6
,动态端口仍然是WIP:。Mesos和纱线有更天然的支持。dA平台可以工作,但它是一个付费的解决方案。希望有帮助。我想使用静态端口,但它配置了HA,资源