我想用会话作业创建一个新的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流程之前创建一个内部负载平衡器。
答案 0 :(得分:1)
Kubernetes主站分配给您的nodePorts
,6123
和6124
之类的6125
的原因是{{1} },由kube-apiserver
上的nodePorts
选项标识。该范围的默认值为--service-node-port-range
。
您只需将该标志30000-32767
添加到您的kubeapi-server配置中,通常在--service-node-port-range
下,其值如下:
/etc/kubernetes/manifests/kube-apiserver.yaml
请记住,该节点上正在运行的某些其他服务可能与端口重叠。
作为FLIP-6的一个副节点,K8s正在进行中(截至撰写本文时),您可以看到它在Kubernetes中是一个非常准系统,因为jobmanager并没有真正动态地创建您的taskmanager和分配资源。
答案 1 :(得分:1)
在flink-conf.yaml中设置
high-availability.jobmanager.port: 6123
这将使资源管理器连接恢复到您要使用的静态端口。