techno-tim / k3s-ansible

The easiest way to bootstrap a self-hosted High Availability Kubernetes cluster. A fully automated HA k3s etcd install with kube-vip, MetalLB, and more. Build. Destroy. Repeat.
https://technotim.live/posts/k3s-etcd-ansible/
Apache License 2.0
2.41k stars 1.05k forks source link

Modular and Iterative Installation #118

Closed inadarei closed 2 years ago

inadarei commented 2 years ago

The K3S-Ansible setup has a very monolithical approach in its current design, making it an all-or-nothing proposition. I think it would be more usable and less error-prone if it was designed to gradually and incrementally increase deployment complexity:

  1. Install K3s cluster with a single master
  2. Install Etcd and support multiple masters
  3. Add kube-vip and Metal-LB support

The benefits of such gradual setup and modularity are:

  1. Users can choose to stop at 1, if they don't really need 2 and 3, or stop at 2, if they don't need 3
  2. The setup run would be easier to debug, because you have smaller steps, and after each step you get something working. For instance, with current design if Metal-LB setup or config fails, I don't even get a working K3s cluster, because Metal-LB installation is way too early. That is adding unnecessary fragility, in my opinion.

Thank you

timothystewart6 commented 2 years ago

Thanks for this. While this does sound nice, it's not currently how it's designed or architected, nor I am sure we'll go that route. Feel free to fork this if you want this feature!