xetys / hetzner-kube

A CLI tool for provisioning kubernetes clusters on Hetzner Cloud
Apache License 2.0
746 stars 116 forks source link

explain when to use --isolated-etcd #287

Closed pschaub closed 4 years ago

pschaub commented 5 years ago

I think the documentation should explain or link to an explanation for the feature --isolated-etcd.

When should I use it?

xetys commented 5 years ago

Usually etcd is installed using kubernetes static pods by kubeadm itself. For a high available setup it is highly recommended to create a multi-node etcd cluster with an odd count of nodes. So the smallest possible would span three nodes. While you still can use kubeadm for the etcd cluster, a solid alternative is installing etcd outside of kubernetes, which is quite straight forward.

There are two ways of installing a HA etcd cluster using hetzner-kube. The default option is to install etcd on the same nodes as the control plane. This is cost efficient, but then the master nodes serve both, etcd and the kubernetes control plane. If you want to increase reliability, you may choose --isolated-etcd, so hetzner-kube install etcd on distinct nodes, outside of the master. This also means more nodes and therefore more expenses.

In my case, I use default HA for staging clusters, and isolate the etcd for live clusters.

You asked for documentation: you are welcome to summarize this into a PR for our README :smile: