[Question] Run consul agent as deployment in k8s

For HA reason we run the cluster coreDNS in our k8s cluster as daemonset and deployment, this setup is working really great for us especially during updates.

Current Consul installation supports only daemonset, would love to understand if is technically possible to run consul in agent mode without serf,telemetry,memeberlist basically just as “connected” DNS resolver.

In general having serf, memberlist, and telemetry off in kubernetes where pods IPs do no match with servers IP would tremendously reduce load on the cluster.
K8s clusters can span over thousand of servers (like ours) and there is a lot of overhead that could be removed imho.

Some thoughts:

  1. If you’re just using DNS and catalog sync you could run only Consul servers.
  2. You could taint the daemonset and catalog sync pods to run on a small set of nodes

i had the same thoughts @lkysow
i doin’t want to expose directly the servers to DNS requests so def run a small set of agents will help. Nevertheless even in this scenario there is a big overhead due all the protocols (serf,memberlist) that the agents runs by default.
How practical would be to turn this off and have only a “connected” DNS agent?

There is no way to turn them off as far as I know. They’re deep in the foundation of Consul.