Kubernetes独立部署会话模式Flink无法通过GUI提交新作业问题咨询
优先级最高的排查方向:Ingress Controller 上传大小限制
你是通过Ingress暴露Flink GUI入口,绝大多数Ingress组件默认会设置请求体大小阈值,超出阈值的请求会被Ingress直接拦截丢弃,不会转发到后端Flink服务,这也是你看不到JobManager日志、只有空Jar/小文件能正常上传的最常见原因。
- 确认你使用的Ingress Controller类型,比如Nginx Ingress默认的
client_max_body_size仅为1M/2M,你可以在Flink对应的Ingress资源中添加annotation调整阈值:
数值可以根据你的业务Jar最大大小调整,比如1G大小设置为annotations: nginx.ingress.kubernetes.io/proxy-body-size: 1024m1024m即可。 - 直接查看Ingress Controller Pod的运行日志,上传Jar包时如果出现
413 Request Entity Too Large报错即可100%确认是该问题。
其次排查Flink服务侧配置
- 检查
flink-conf.yaml中rest.upload.max-file-size配置项,Flink 1.13版本默认最大上传文件大小为100M,如果你的业务Jar超过该阈值,需要在ConfigMap中添加配置调整:rest.upload.max-file-size: 2048MB - 确认JobManager Pod中
web.upload.dir指定目录的读写权限,确保Flink运行用户对该目录有写入权限,避免文件写入失败无返回的问题。
辅助排查手段
- 用REST API直接上传测试,绕过GUI层的干扰,执行如下命令看返回结果:
该命令会直接返回接口报错信息,比GUI无响应的排查效率更高。curl -X POST -H "Expect:" -F "jarfile=@/本地业务Jar路径.jar" http://你的Flink访问地址/jars/upload - 打开浏览器控制台查看网络请求,确认上传Jar的请求是否被浏览器策略拦截、是否出现CORS报错、请求超时等问题,也可以直接在集群内部用curl访问JobManager的Service ClusterIP地址上传,排除外部网络/代理的干扰。
- 检查JobManager Pod的资源使用情况,确认是否存在CPU/内存占满导致请求无法处理的情况。
内容的提问来源于stack exchange,提问作者danthelos
相关产品推荐
相关产品推荐

