Currently flink only supports HighAvailabilityService using zookeeper. As a result, it requires a zookeeper cluster to be deployed on k8s cluster if our customers needs high availability for flink. If we support HighAvailabilityService based on native k8s APIs, it will save the efforts of zookeeper deployment as well as the resources used by zookeeper cluster. It might be especially helpful for customers who run small-scale k8s clusters so that flink HighAvailabilityService may not cause too much overhead on k8s clusters.
Previously FLINK-11105 has proposed a HighAvailabilityService using etcd. As Nathan Howell suggested in
FLINK-11105, since k8s doesn't expose its own etcd cluster by design (see Securing etcd clusters), it also requires the deployment of etcd cluster if flink uses etcd to achieve HA.