IIRC, ZK would be more modern and cloud-friendly if it could self-assemble with a preshared passphrase alone. It's good technology otherwise, it's just a PITA to deploy, configure, and support.
I really love a lot of the software under the Hadoop umbrella, but so much of it assumes a static deployment on bare metal hosts, it's a struggle to use it in "modern" setups (HBase, for example; I miss my old friend).
Hadoop launched in 2006, the same year as AWS' cloud portfolio. HBase showed up in 2008.
Many of the hiccups with running Hadoop and friends in containers or on cloud VM's boils down to how hostnames are resolved and advertised; not any significant design issue.
It seems weird to me that cloud providers do not offer distributed coordination primitives "as a service." I understand there are KV stores but not with watches, locks, etc. in the way that etcd and ZK have them.
Azures blob service supports the first one. Its strongly consistent and has a lease/lock API. Ive seen leader election and coordination stuff built on top of it.
The dynamic reconfigure API they added is also terrible, imo. The only thing that made ZK tolerable to use for me was Exhibitor but that appears to be long dead.