Rancher installation and configuration

Introduction

What is a Rancher? Simply it is a Kubernetes management solution. In other words, Rancher is a centralized Kubernetes management system where we can add and manage multiple cloud providers, and on-prem Kubernetes clusters. Rancher will be helpful when we have to manage multiple Kubernetes clusters in multiple Kubernetes vendors. It also supports CI/CD with the help of the inbuilt Fleet tool.

In this tutorial, we will install the Rancher server on a Kubernetes cluster with the help of the Helm package manager.

Prerequisites

In order to complete this tutorial we need the below-mentioned tools and systems

  • A working Kubernetes cluster (Used version 1.24 and on-premise)
  • Helm CLI
  • kubectl, Kubernetes command line tool
  • Cert-manager

List the cluster details

In this tutorial, we will be using an On-premise 3-worker node cluster running Kubernetes version 1.24.

 kubectl get nodes
NAME            STATUS   ROLES    AGE     VERSION
worker-node-1   Ready    <none>   5m44s   v1.24.8
worker-node-2   Ready    <none>   5m31s   v1.24.8
worker-node-3   Ready    <none>   5m48s   v1.24.8

Install NGINX ingress controller

The NGINX ingress controller will be used to expose Rancher API and UI. Commands to install the NGINX ingress controller are given below.

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm upgrade --install \
  ingress-nginx ingress-nginx/ingress-nginx \
  --namespace ingress-nginx \
  --set controller.service.type=LoadBalancer \
  --create-namespace

Once the installation is completed, execute the below command to get the external IP address of the Loadbalancer.

kubectl get service ingress-nginx-controller --namespace=ingress-nginx

NAME                       TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                      AGE
ingress-nginx-controller   LoadBalancer   10.128.101.253   5.7.9.10   80:32372/TCP,443:30084/TCP   85s

For demo purposes, I will point this IP address to a fake domain using the “/etc/hosts” file on my laptop. Add the string

5.7.9.10 rancher.server.com to your host file and save it.

Install Cert-manager

Cert-manger is required for Rancher installation. Rancher is designed to be secure so we need a cert-manger to generate and install TLS/SSL certificate. Run the below command to install the cert-manager.

helm repo add jetstack https://charts.jetstack.io
helm install \
  cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --create-namespace \
  --version v1.10.1 \
  --set installCRDs=true

Execute the below commands to make sure that the installation is successful.

kubectl get pods --namespace cert-manager
NAME                                       READY   STATUS    RESTARTS   AGE
cert-manager-5fdbd97fb5-m699w              1/1     Running   0          38s
cert-manager-cainjector-7c44879bc4-97tm6   1/1     Running   0          38s
cert-manager-webhook-5db84854c8-dt6f4      1/1     Running   0          38s

Rancher installation with Let’s encrypt certificate

Run the below command to install the Rancher on the Kubernetes cluster with the Let’s encrypt certificate and NGINX ingress.

helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
kubectl create namespace cattle-system
helm install rancher rancher-stable/rancher \
  --namespace cattle-system \
  --set hostname=rancher.server.com \
  --set bootstrapPassword=adMinXYZ \
  --set ingress.tls.source=letsEncrypt \
  --set letsEncrypt.email=work@gmail.com \
  --set letsEncrypt.ingress.class=nginx \
  --set ingress.ingressClassName=nginx

Execute the below command and make sure that all pods are in a running state (It may take a few minutes to run all the pods). If all the pods are in a running state, open a browser and paste your hostname which we added in the /etc/hosts file.

kubectl -n cattle-system rollout status deploy/rancher
deployment "rancher" successfully rolled out

kubectl -n cattle-system get deploy rancher
NAME      READY   UP-TO-DATE   AVAILABLE   AGE
rancher   3/3     3            3           26m

If everything went well, you can see a beautiful window in the browser.

To log in to the Rancher, use the admin password which we set at the time of installation.

Reference

https://docs.ranchermanager.rancher.io/

Leave a Reply

Your email address will not be published. Required fields are marked *