Few questions about a HA cluster

Hey, I’ve been trying to install Kubernetes, the idea in the end is to have an HA cluster with shared etcd, where the etcd is Ceph. But I have a few questions before getting into that.

  1. When making an HA cluster ( In our case, 3 master, and at least 3 worker nodes ), is it always necessary, or at least a good practice, to have a Load Balancer? I’ve seen time where they use it, and time where people don’t.

  2. What’s the proper way to configure a cluster with an external etcd? I was using this as guide: Set up a High Availability etcd cluster with kubeadm - Kubernetes, but it’s still a bit unclear for me how to make it external.

  3. If I use a Load Balancer, does this node, and only this one need the CNI? Or that’s a requirement for every node connected to it?

  4. I was using a guide to install the HA cluster, was working pretty much fine until I had to get the config.yaml file for the kubeadm running, because the one in the guide was: apiVersion: kubeadm.k8s.io/v1alpha3, and refused to run in the current version. I was wondering if there’s an easy fix here, or it’s better to start all from scratch again.

Thanks in advance, if something is not clear, I will reply as soon as possible.

Cluster information:

Kubernetes version: v1.18.0
Cloud being used: bare-metal
Installation method:
Host OS: CentOS 8
CNI and version:
CRI and version: Docker 19.03.8