Exposing UDP service on Linode Kubernetes
Hi, I'd like to ask the community for some ideas on how to expose UDP services from Linode's Kubernetes.
I would like to deploy an application which needs to listen on both TCP and UDP ports of the same number and same address. Some cloud provider's load balancers are unable to open TCP & UDP on the same LB instance (and hence the same IP), but so far I've found that Linode's load balancer does not support UDP at all.
Probably the only way then would be to use Service type NodePort with both TCP and UDP ports and direct clients to one of the nodes's addresses (or add all of them to DNS?). Haven't tried it yet, not sure if LKE lets me even use the port number I'd need for NodePort, IIRC it was somewhere around 62000.
So I'd like to ask, if anyone tried something similar and maybe has a better solution? Thank you for any tips.
2 Replies
As you have noticed, Linode NodeBalancer does not support UDP at all. NodePort works, but you are locked into the 30,000-32,767 port range and need to deal with tracking and using node IPs.
I'm also in the position of wishing there was a way to route UDP through an LKE LoadBalancer, though then you run into the issue of needing separate LoadBalancer instances for TCP and UDP.
So AFAICT the only solution on LKE is a NodePort service and using a port in the range of 30,0000 to 32,767.
Proper (i.e. not by fussing about with nodeports) UDP support for LKE is a useful feature to have! Is there a way to put this on a feature-request backlog of some sorts?