赞
踩
在使用yarn部署flink任务时,yarn自动代理了flink web ui,通过yarn的地址即可访问任务web页面。
k8s模式下想访问flink web ui,要么使用NodePort的方式启动任务,然后通过k8s主机IP+NodePort端口来进行访问。但是这种方法,每次启动任务都是随机的NodePort端口,且生产环境默认禁用主机端口访问。
所以采用LoadBalancer的方式,来通过域名访问flink web ui
1、安装 ingress-nginx controller
- helm upgrade --install ingress-nginx ingress-nginx \
- --repo https://kubernetes.github.io/ingress-nginx \
- --namespace ingress-nginx --create-namespace
安装成功后,能看到namespace ingress-nginx下启动了nginx-ingress-controller服务
2、申请域名
找运维申请域名,我这里使用的域名为:flink-ui-gj.test.yingzi.com
由于我们k8s主机上80端口被占用,ingress无法通过80端口来访问
于是通过配置kong转发请求到ingress controller,其实效果都一样
3、把第2步申请的域名配置到streampark中
4、streampark启动任务的时候Rest-Service Exposed Type选择LoadBalancer
启动任务,streampark会自动创建ingress配置,对应的path为:/flink/{job_name}/
这样就可以直接通过域名访问flink ui了,在streampark Application列表上可以直接点击跳转链接
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。