Trying to expose zeebe out from the cluster

Hi I run zeebe on my kubernet cluster, everything is working with port forward. I am trying to change it to ingress. I prepare ingress, read some examples. Tried a similar set up as is mentioned here ingress-nginx/docs/examples/grpc at master · kubernetes/ingress-nginx · GitHub

I was trying to upload something via modeler and I got “Should point to a running zeebe cluster”.

I tried to verify that everything is running via grpcurl but it looks like reflection is not on (no idea how to turn it on)

but even “Failed to list services: server does not support the reflection API” is kind of success for me. No idea how to move further.

I was trying to find some guide to check if my environment variables cant be the problem
but didn’t find anything. Any tips ?

        - name: ZEEBE_GATEWAY_NETWORK_HOST
          value: 0.0.0.0
        - name: ZEEBE_GATEWAY_NETWORK_PORT
          value: "26500"
        - name: ZEEBE_GATEWAY_CLUSTER_HOST

If you are in dev create a local host service with ingress that points to your deployment of the gateway. Something like this should work. It’s what I use to expose the tasklist for local dev.

apiVersion: v1
kind: Service
metadata:
name: gateway
namespace: default
labels:
app: gateway
spec:
externalTrafficPolicy: Local
ports:

  • name: http
    port: 26500
    protocol: TCP
    targetPort: 26500
    selector:
    app: gateway
    type: LoadBalancer
    status:
    loadBalancer:
    ingress:
    • hostname: localhost

you mean on localhost? no i am not running it on localhost. but I think my ingress and service configuration is okay. I tried this setup ingress-nginx/docs/examples/grpc at master · kubernetes/ingress-nginx · GitHub and it was working, I used it for me zeebe.

I can telnet to the URL and port 443, but when I try upload something via modeler I got “Should point to a running zeebe cluste” error

#my service
apiVersion: v1
kind: Service
metadata:
  name: "zeebe-cluster-zeebe-gateway"
  namespace: zeebe
  labels:
    app.kubernetes.io/name: zeebe-cluster
    app.kubernetes.io/instance: zeebe-cluster
    helm.sh/chart: zeebe-cluster-0.1.0-SNAPSHOT
    app.kubernetes.io/version: "0.23.4"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: gateway
spec:
  type: ClusterIP
  ports:
    - port: 9600
      protocol: TCP
      name: http
    - port: 26500
      protocol: TCP
      name: gateway
  selector:
    app.kubernetes.io/name: zeebe-cluster
    app.kubernetes.io/instance: zeebe-cluster
    helm.sh/chart: zeebe-cluster-0.1.0-SNAPSHOT
    app.kubernetes.io/version: "0.23.4"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: gateway

#my ingress 
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: "zeebe-cluster-zeebe"
  namespace: zeebe
  labels:
    app.kubernetes.io/name: zeebe-cluster
    app.kubernetes.io/instance: zeebe-cluster
    helm.sh/chart: zeebe-cluster-0.1.0-SNAPSHOT
    app.kubernetes.io/version: "0.23.4"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: gateway
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    nginx.ingress.kubernetes.io/server-alias: "<....URL.....>"
    nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
spec:
  rules:
  - host: "<....URL.....>"  
    http:
      paths:
      -  backend:
           serviceName: "zeebe-cluster-zeebe-gateway"
           servicePort: gateway
  tls:
    - hosts:
      - "<....URL.....>"
      secretName: "zeebe-cluster-cert"

so I think this is correct but maybe problem with zeebe configuration, I tried to add ZEEBE_ADVERTISED_HOST but didn’t helped

As far as I know modeller cannot work with https, i tried and failed, so in my nginx I opened second port for modeller and used http protocol

# Zeebe Modeller
server {
   listen 2721 http2;

   access_log /var/log/nginx/zeebe-modeller-access.log upstream_time;
   error_log /var/log/nginx/zeebe-modeller-error.log;

   allow x.x.x.x;
   deny all;

   location / {
       grpc_pass grpc://zeebe:26500;
   }
}
1 Like

so it looks like i was exposing also HTTP port
I tried it but still same message “Should point to a running zeebe cluster”
still not sure if this is problem of my configuration in zeebe or configuration in kubernet :confused:

ok so it looks like problem was only with madder, I tried to upload bpmn via zbctl and it is working

I am using shell scripts to upload bunch of models through rest api point that connects to zeebe through https, modeller only for development purpose.