You can use etcd for service discovery...that's how k8s does it, no? As for nomad I never used it much, but did like that you could run things locally and have unified environments. I would recommend Nix but we all know what's going on there, sadly FOSS has been consumed by political infighting as well.
Anything but Zookeeper! It was written long before the cloud was a thing, relies on hard-coded IPs, and is practically impossible to operate idiomatically in a cloud environment (unless you’re using statefulsets in K8S to paper over it). It has served us well over the past two decades, but it’s nigh time to give it the proper burial ceremony it deserves.