High Availability (HA) Clusters

For a high availability cluster, you will need to do the following prior to creating a cluster:

  1. Identify master nodes in your host group by adding the following label on each host that the master components should be deployed on:

    key: nirmata.io/cluster.role
    value: control-plane
    
  2. You will need to setup a network load balancer (e.g. nginx). The load balancer should be setup in SSL passthrough mode to pass SSL traffic received at the load balancer onto the api servers. e.g. For nginx, use TCP load balancing as described:

        stream {
           upstream apiserver {
               server <apiserver-1-ip-address>:6443;
               server <apiserver-2-ip-address>:6443;
               server <apiserver-3-ip-address>:6443;
           }
    
           server {
               listen 443;
               proxy_pass apiserver;
           }
    
      }
    
  3. Use the host name for the server running nginx as the Endpoint when creating the cluster (e.g. https://nginx-address)

Once the cluster is deployed, you should be able to connect to the cluster by launching the terminal and checking if the worker nodes have connected (kubectl get nodes).