This is a very simple TCP/UDP echo server that, can be easily deployed into a Kubernetes cluster. yyou can run just as a test echo service, but its main goal is to run as a DeamonSet
, that can be used for detecting running Kubernetes nodes using UDP probes.
When dealing with UDP services on a Kubernetes cluster, one way to expose them to the outside world is by using a Service
configured in NodePort
mode. In this mode you can point an external load balancer to a UDP port that every Kubernetes node will allocate and translate so it goes to your UDP service. Still, some load balancers (Oracle's OCI is an example) require you to provide a full static request-response UDP conversation that can be used as a way to detect if target nodes are up and running. In that case, you can use kube-echo
deployed as a DaemonSet
with a NodePort
service to use as a Kubernetes node liveness check from the load balancer's perspective. To avoid issues when the kube-echo
itself goes down or is not running for any reason, it is exposing a simple heart beat prometheus metric you can use for alerting.