What on-prem load balancing / virtual-ip implementation did you use?

Alright, I solved one more problem - the time it takes for kube controller to detect a down node and how fast it evicts the pods and create new ones to replace those from the down node.

This is covered in Health check - does it even work?