Step by Step to Setup Rancher RKE2 HA cluster using Nginx

I can provide you with a step-by-step guide on how to set up a Rancher RKE2 HA cluster using Nginx as the load balancer. Here are the steps:

Prerequisites:

  • Three or more Ubuntu 20.04 servers with 2 CPUs, 4GB of RAM, and 30GB of storage each
  • Root access to all servers
  • An SSH key pair for authentication
  • A domain name pointing to the IP address of the load balancer

Step 1: Install and configure Nginx

  1. Log in to the server that will be used as the load balancer.
  2. Install Nginx using the following command: sudo apt-get install nginx
  3. Once Nginx is installed, stop the service using the following command: sudo systemctl stop nginx
  4. Open the Nginx configuration file /etc/nginx/nginx.conf using your favorite text editor.
  5. Add the following content to the end of the http block to configure the load balancer:
cssCopy codeupstream rke2_servers {
    server <IP_ADDRESS_OF_SERVER_1>:6443;
    server <IP_ADDRESS_OF_SERVER_2>:6443;
    server <IP_ADDRESS_OF_SERVER_3>:6443;
}

server {
    listen 80;
    server_name <YOUR_DOMAIN_NAME>;

    location / {
        proxy_pass https://rke2_servers;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
  1. Save and close the configuration file.
  2. Start the Nginx service using the following command: sudo systemctl start nginx

Step 2: Install RKE2 on all servers

  1. Log in to all servers as the root user.
  2. Download the RKE2 binary using the following command: curl -sfL https://get.rke2.io | sh -s -- --version v1.21.4+rke2r1
  3. Once the binary is downloaded, install RKE2 using the following command: sudo installer -o root -g root -m 0755 -n /usr/local/bin/rke2 /tmp/rke2*/rke2
  4. Initialize RKE2 using the following command: sudo rke2 server --cluster-init
  5. Once the initialization is complete, copy the kubeconfig.yaml file to your local machine using the following command: sudo cat /etc/rancher/rke2/rke2.yaml > kubeconfig.yaml
  6. Repeat steps 2-5 for all servers in the cluster.

Step 3: Configure the Kubernetes API server

  1. Open the kubeconfig.yaml file using your favorite text editor.
  2. Find the server entry and replace the IP address with the domain name of the load balancer.
  3. Save and close the file.

Step 4: Join the cluster

  1. Log in to each server as the root user.
  2. Run the following command to join the cluster: sudo rke2 server --server https://<YOUR_DOMAIN_NAME>:6443 --token <CLUSTER_TOKEN>
  3. Repeat step 2 for all servers in the cluster.

Step 5: Verify the cluster

  1. Log in to any server as the root user.
  2. Verify the status of the cluster using the following command: sudo kubectl get nodes
  3. If all nodes are in the Ready state, the cluster is successfully set up.

That’s it! You have successfully set up a Rancher RKE2 HA cluster using Nginx as the load balancer.

Rajesh Kumar
Follow me
Latest posts by Rajesh Kumar (see all)
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x