Configuration:
We are currently using Traefik as an ingress controller for kubernetes (AWS EKS). We are running Wildfly 19 in multiple k8s PODs serving stateless EJBs through Wildfly's HTTP Remoting connector. We have set up a Traefik Service that proxies to one or more k8s pods (replicas). In addition we have added an IngressRoute that looks for the 'Upgrade: jboss-remoting' header and adds that to the request being forwarded to one of our kubernetes Wildlfy PODs. With this configuration we have been able to successfully lookup and invoke remote EJBs.
Request Flow:
Remote EJB requests are initiated from remote Java clients using the standard Wildfly client libraries connecting to our Wildfly servers through an AWS ALB configured with target groups consisting of our
EKS worker nodes. Sticky load balancing has been disabled at the ALB so all requests are load balanced across worker nodes.
Problem:
We are experiencing that, when we make Remote EJB calls, all requests are being routed consistently to a single POD (the same POD each time) and are not being round-robin load-balanced across all available PODs.
Question:
Is there something we need to include, in addition to what we currently have configured, to enable the loadbalancing across ALL of the PODS behind our Service definition?
Thanks
Jeff
[This is a dump of our Service and IngressRoute YAML]
Name: ctr-calc
Namespace: ctr-dev
Labels: <none>
Selector: app=ctr-calc
Type: ClusterIP
IP: 172.20.168.217
Port: ctr-calc 443/TCP
TargetPort: 8443/TCP
Endpoints: 10.196.84.105:8443,10.196.84.142:8443
Session Affinity: None
API Version: traefik.containo.us/v1alpha1
Kind: IngressRoute
Metadata:
Creation Timestamp: 2020-10-06T16:46:23Z
Generation: 2
Resource Version: 11441119
Self Link: /apis/traefik.containo.us/v1alpha1/namespaces/ctr-dev/ingressroutes/ctr-calc
UID: c6fafbbb-f0e7-4b52-ab18-75a6dba18b5d
Spec:
Entry Points:
websecure
Routes:
Kind: Rule
Match: Host(`ctr-dev.putnam.com`)
Services:
Name: ctr-calc
Port: 443
Kind: Rule
Match: Host(`ctr-dev.putnam.com`) && Headers("Upgrade", "jboss-remoting")
Middlewares:
Name: wildfly-set-headers
Namespace: traefik
Services:
Name: ctr-calc
Port: 443
Tls:
'''