HA K8S Bare Metal Cluster without Keepalived

Cluster information:

3 Nodes with Masters+Workers in Centos 7.5

Kubernetes version: 14.4
Cloud being used: bare-metal
Installation method: Kubeadm
Host OS: Centos 7.5
CNI and version: Flannel 0.11.0-amd64
CRI and version: Docker 18.06.1-ce, build e68fc7a

Hey, I have a query regarding an HA configuration for 3 Master in 3 VMs I have.

I have done 2 kinds of installations.

The first one was the standard one with Keepalived and HAProxy . It works fine.

In the second installations I decided to remove Keepalived and configure all my instances HAProxy receiving requests from the port 443 and balancing those requests to one of the 3 machines to the port 6443 ( apiserver ). Then I have configure the apiserver clients to place request to instead of the Virtual IP addressEverything was fine but when I start doing some HA tests removing the NIC and adding it again I realized that the second scenario. sometimes, the hole cluster stops recognizing the node I remove the NIC goes down and even after a lot of time every node in the cluster was Ready .

Can anyone explain me what is the cause of that in the scenario I didn’t install Keepalived ? I thought Keepalived was only responsible to avoid issues when one HAProxy goes down and it is not the case.