Open
Description
Hi,
I'm trying to send messages between a client outside k8s cluster and a broker inside the cluster using PyZMQ.
- I tried using conventional load balancer and gives me a handshake error.
DEBUG:root:Client Socket Event: {'event': <Event.ACCEPTED: 32>, 'value': <Event.CONNECT_RETRIED|BIND_FAILED: 20>, 'endpoint': b'tcp://192.168.0.68:5559', 'description': 'EVENT_ACCEPTED'}
DEBUG:root:Client Socket Event: {'event': <Event.HANDSHAKE_FAILED_NO_DETAIL: 2048>, 'value': <Event.ACCEPTED: 32>, 'endpoint': b'tcp://192.168.0.68:5559', 'description': 'EVENT_HANDSHAKE_FAILED_NO_DETAIL'}
DEBUG:root:Client Socket Event: {'event': <Event.DISCONNECTED: 512>, 'value': <Event.CONNECT_RETRIED|BIND_FAILED: 20>, 'endpoint': b'tcp://192.168.0.68:5559', 'description': 'EVENT_DISCONNECTED'}
- Then I tried the nlb with the manifest below but still got same handshake error
apiVersion: v1
kind: Service
metadata:
name: rexec-broker-external-ip
labels:
app: rexec-broker
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: external
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: instance
service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
spec:
selector:
app: rexec-broker
ports:
- name: "client-port"
port: 5559
targetPort: 5559
- name: "control-port-external"
port: 5561
targetPort: 5561
type: LoadBalancer
loadBalancerClass: service.k8s.aws/nlb
- The final workaround is to use the
NodePort
to directly route my traffics.
So I'm wondering if the AWS nlb supports the ZMQ protocol or I was misconfiguring anything?