Kubernetes Node External IP Watcher
A lightweight Kubernetes node event watcher that solves the challenge of dynamically updating external services when node topology changes. This talk presents k8s-node-external-ip-watcher, a Go application that uses Kubernetes Informers to monitor node changes and automatically update external load balancers and services that need to know cluster node IPs, particularly useful when cloud providers lack UDP load balancing support.
Key Topics Covered
- Cloud providers lacking UDP load balancing and manual configuration challenges
- Real-world use case: Dynamically updating dnsdist backends for DNS services on NodePorts
- Implementation using Kubernetes Informers and client-go library
- Hash-based change detection to prevent redundant updates
- Safety features including minimum node count safeguards and static IP support
- Production deployment with minimal RBAC permissions, metrics, and health checks