Support TCP port under UDP service
Welcome!
- [X] Yes, I've searched similar issues on GitHub and didn't find any.
- [X] Yes, I've searched similar issues on the Traefik community forum and didn't find any.
What did you expect to see?
At present, when you want to configure a UDP port service, that creates a second service. In the case of AWS load balancers, you'll be creating an NLB.
However, NLB Target groups only support three types of health checks, TCP, HTTP, and HTTPS.
So if I register a UDP load balancer, every target will show up as unhealthy without a way for me to pass it a TCP health check, even though traefik is there and capable of responding to a TCP health check.
Fortunately, the AWS behavior is that of every target is failing, to forward traffic anyways. But it would be nice to have the ability to set intermingled ports so that I can set a health check on the UDP load balancer that denotes whether or not traefik is available.
Using UDP doesn't really make sense for health check, though we should be able to configure the TCP health check to query for a port confirming your Node is up and running, probably 10250 (kubelet), or one of the NodePort that was allocated to one of Traefik endpoints (if we want to rule out nodes with a SDN that doesn't work yet)
Somewhat related:
- https://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-health-checks.html
For a UDP service, target availability can be tested using non-UDP health checks on your target group
- https://aws.amazon.com/blogs/aws/new-udp-load-balancing-for-network-load-balancer/
Things to know / Health Checks – As I mentioned above, health checks must be done using TCP, HTTP, or HTTPS