Hi Flink experts,

I have been facing this issue for quite some days as I am not able to
submit/run SQL  Queries using REST CLIENT OR  FLINK SQL CLIENT via SQL
gateway. Here's my Setup Cluster Set up via k8s operator to deploy Session
Cluster, Service gateway and ingress files.  I am able to run `` ./flink
run exmaples/abc.jar from my local host , Job manager pod, and Service
gateway pod``  however when I try to use Rest client/ Flink SQL to submit
 SQL queries via SQL GATEWAY . It gives the following error. Not really
sure how to solve this as I have tried to increase my configurations
(rest.client.max-content-length, rest.server.max-content-length) as
mentioned in the error everywhere but no luck . I would really appreciate
it if someone can give pointers to debug further as I have run out of ideas.


Caused by: org.apache.flink.runtime.rest.util.RestClientException: 413
Request Entity Too Large. Try to raise
[rest.client.max-content-length]
        at 
org.apache.flink.runtime.rest.RestClient$ClientHandler.channelRead0(RestClient.java:615)
~[flink-dist-1.17.0.jar:1.17.0]
        at 
org.apache.flink.shaded.netty4.io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
~[flink-dist-1.17.0.jar:1.17.0]
        at 
org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
~[flink-dist-1.17.0.jar:1.17.0]
        at 
org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
~[flink-dist-1.17.0.jar:1.17.0]
        at 
org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
~[flink-dist-1.17.0.jar:1.17.0]
        at 
org.apache.flink.shaded.netty4.io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
~[flink-dist-1.17.0.jar:1.17.0]
        at 
org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
~[flink-dist-1.17.0.jar:1.17.0]
        at 
org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
~[flink-dist-1.17.0.jar:1.17.0]
        at 
org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
~[flink-dist-1.17.0.jar:1.17.0]

apiVersion: flink.apache.org/v1beta1
kind: FlinkDeployment
metadata:
  name: session-seven-deployment-only-example
spec:
  image: flink:1.17
  flinkVersion: v1_17
  flinkConfiguration:
    taskmanager.numberOfTaskSlots: "10"
    rest.server.max-content-length: "1209715200"
    rest.client.max-content-length: "1209715200"
  serviceAccount: flink
  jobManager:
    resource:
      memory: "2048m"
      cpu: 1
  taskManager:
    resource:
      memory: "2048m"
      cpu: 1
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: k8-cps-dev
    nginx.ingress.kubernetes.io/client-body-buffer-size: 500M
  name: my-docker-app-ingress-3
spec:
  rules:
  - host: flink-sql-gateway.usb.cloud.bank-dns.com
    http:
      paths:
      - backend:
          service:
            name: flink-seven-sql-gateway-svc
            port:
              number: 8086
        path: /
        pathType: Prefix

Gateway

apiVersion: apps/v1
kind: Deployment
metadata:
  name: flink-seven-sql-gateway
spec:
  replicas: 1
  selector:
    matchLabels:
      app: flink-seven-sql-gateway
  template:
    metadata:
      labels:
        app: flink-seven-sql-gateway
    spec:
      containers:
        - name: flink-seven-sql-gateway
          image: flink:1.17.0
          ports:
            - containerPort: 8086
          command: ["/bin/sh", "-c"]
          args:
            - "/opt/flink/bin/sql-gateway.sh start-foreground
-Dsql-gateway.endpoint.rest.address=localhost
-Dsql-gateway.endpoint.rest.port=8086"
          volumeMounts:
            - name: flink-conf
              mountPath: /opt/flink/conf
      volumes:
        - name: flink-conf
          configMap:
            name: flink-conf

Gateway svc

apiVersion: networking.k8s.io/v1 apiVersion: v1
kind: Service
metadata:
  name: flink-seven-sql-gateway-svc
spec:
  selector:
    app: flink-seven-sql-gateway
  ports:
    - name: flink-seven-sql-gateway
      port: 8086
      targetPort: 8086
  type: ClusterIP

Ingresses

kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: k8-cps-dev
    nginx.ingress.kubernetes.io/client-body-buffer-size: 500M
  name: ingress-3
spec:
  rules:
  - host: flink-sql-gateway.usb.cloud.bank-dns.com
    http:
      paths:
      - backend:
          service:
            name: flink-seven-sql-gateway-svc
            port:
              number: 8086
        path: /
        pathType: Prefix
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: k8-cps-dev
    nginx.ingress.kubernetes.io/client-body-buffer-size: 500M
  name: ingress-2
spec:
  rules:
  - host: flink-prod-dns.usb.cloud.bank-dns.com
    http:
      paths:
      - backend:
          service:
            name: session-seven-deployment-only-example-rest
            port:
              number: 8081
        path: /
        pathType: Prefix

Updated flink conf  used as configmap

rest.address: flink-prod-dns.usb.cloud.bank-dns.com
rest.port: 80


jobmanager.bind-host: flink-prod-dns.usb.cloud.bank-dns.com

rest.server.max-content-length: 1409715200
rest.client.max-content-length: 1409715200

Thanks

Rajat Ahuja

Reply via email to