我想用会话作业创建一个新的k8s部署;并在taskmanager
中部署了一个flink-conf.yaml
配置如下:
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 Job / standalone-job.sh
Flink进程前创建一个内部负载均衡器。
在flink-conf.yaml中,设置
high-availability.jobmanager.port: 6123
这将使资源管理器连接回到您希望使用的静态端口。
你没有获得由kubernetes大师分配的nodePorts
,6123
和6124
这样的6125
的原因是nodePorts
上的--service-node-port-range
选项确定了kube-apiserver
的端口范围。该范围的默认值为30000-32767
。
您可以将标志--service-node-port-range
添加到您的kubeapi-server配置中,通常位于/etc/kubernetes/manifests/kube-apiserver.yaml
下,其值如下:
--service-node-port-range=6000-32767
请记住,可能与节点上运行的某些其他服务存在端口重叠。
作为一个侧面节点,FLIP-6是K8s正在进行的工作(截至本文撰写时)你可以看到它在Kubernetes中非常准确,因为jobmanager并不是真正动态创建你的任务管理器和分配资源。