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
- Log in to the server that will be used as the load balancer.
- Install Nginx using the following command:
sudo apt-get install nginx - Once Nginx is installed, stop the service using the following command:
sudo systemctl stop nginx - Open the Nginx configuration file
/etc/nginx/nginx.confusing your favorite text editor. - Add the following content to the end of the
httpblock 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;
}
}
- Save and close the configuration file.
- Start the Nginx service using the following command:
sudo systemctl start nginx
Step 2: Install RKE2 on all servers
- Log in to all servers as the root user.
- Download the RKE2 binary using the following command:
curl -sfL https://get.rke2.io | sh -s -- --version v1.21.4+rke2r1 - 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 - Initialize RKE2 using the following command:
sudo rke2 server --cluster-init - Once the initialization is complete, copy the
kubeconfig.yamlfile to your local machine using the following command:sudo cat /etc/rancher/rke2/rke2.yaml > kubeconfig.yaml - Repeat steps 2-5 for all servers in the cluster.
Step 3: Configure the Kubernetes API server
- Open the
kubeconfig.yamlfile using your favorite text editor. - Find the
serverentry and replace the IP address with the domain name of the load balancer. - Save and close the file.
Step 4: Join the cluster
- Log in to each server as the root user.
- Run the following command to join the cluster:
sudo rke2 server --server https://<YOUR_DOMAIN_NAME>:6443 --token <CLUSTER_TOKEN> - Repeat step 2 for all servers in the cluster.
Step 5: Verify the cluster
- Log in to any server as the root user.
- Verify the status of the cluster using the following command:
sudo kubectl get nodes - If all nodes are in the
Readystate, 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.
I’m Rajesh Kumar, a DevOps, SRE, DevSecOps, Cloud, and Platform Engineering expert passionate about sharing practical knowledge, real-world experiences, and industry best practices. I have worked at Cotocus and regularly write about technology, travel, investing, health, product reviews, and digital marketing through my various platforms.
I publish technical articles at DevOps School, travel stories at Holiday Landmark, stock market insights at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at TrueReviewNow, and SEO and digital marketing strategies at Wizbrand.
Find Trusted Cardiac Hospitals
Compare heart hospitals by city and services — all in one place.
Explore Hospitals