https://github.com/piontec/kube-echo
a simple UDP/TCP echo implementation, good to use as a Kubernetes node health check
https://github.com/piontec/kube-echo
Last synced: 5 months ago
JSON representation
a simple UDP/TCP echo implementation, good to use as a Kubernetes node health check
- Host: GitHub
- URL: https://github.com/piontec/kube-echo
- Owner: piontec
- License: apache-2.0
- Created: 2023-05-24T17:19:07.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-04-09T15:47:47.000Z (about 2 years ago)
- Last Synced: 2025-08-02T21:50:16.343Z (11 months ago)
- Language: Go
- Size: 27.3 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Kube-echo
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`](https://kubernetes.io/docs/concepts/services-networking/service/#type-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.