DEV Community

Harizaldo Alfaraze
Harizaldo Alfaraze

Posted on

How to install rancher kubernetes in ubuntu

Master (First Control Plane)

System Update & Prerequisites

sudo apt update && sudo apt upgrade -y
sudo apt install -y apt-transport-https curl
Enter fullscreen mode Exit fullscreen mode

Install Helm

curl https://baltocdn.com/helm/signing.asc | sudo apt-key add -
echo "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt update && sudo apt install helm -y
Enter fullscreen mode Exit fullscreen mode

install kubectl (latest stable)

curl -LO "https://dl.k8s.io/release/$(curl -Ls https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
Enter fullscreen mode Exit fullscreen mode

Install K3s server (first master)

curl -sfL https://get.k3s.io | sh -
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
Enter fullscreen mode Exit fullscreen mode

Add Helm repos (Rancher & Cert-Manager)

helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
helm search repo rancher-latest/rancher --versions | head
helm repo update
Enter fullscreen mode Exit fullscreen mode

Create namespace for cert-manager

kubectl create namespace cert-system
Enter fullscreen mode Exit fullscreen mode

Install cert-manager

helm install cert-manager jetstack/cert-manager \
  --namespace cert-system \
  --create-namespace \
  --set installCRDs=true
Enter fullscreen mode Exit fullscreen mode

Wait for cert-manager to be ready

kubectl wait --for=condition=Available deployment --timeout=300s -n cert-system --all
Enter fullscreen mode Exit fullscreen mode

Create namespace for Rancher (cattle-system)

kubectl create namespace cattle-system
Enter fullscreen mode Exit fullscreen mode

Install Rancher without ingress (access via NodePort)

helm install rancher rancher-latest/rancher \
  --namespace cattle-system \
  --version 2.12.0 \
  --set ingress.enabled=false \
  --set service.type=NodePort \
  --set bootstrapPassword=admin
Enter fullscreen mode Exit fullscreen mode

Get the node token from master

cat /var/lib/rancher/k3s/server/node-token
Enter fullscreen mode Exit fullscreen mode

Show initial Rancher password

echo "Password awal Rancher:"
kubectl get secret --namespace cattle-system bootstrap-secret -o go-template='{{.data.bootstrapPassword | base64decode}}{{ "\n" }}'
Enter fullscreen mode Exit fullscreen mode

Show IP and port to access Rancher

kubectl get service -n cattle-system rancher
Enter fullscreen mode Exit fullscreen mode

==========================================================

Join More Nodes

Install K3s server (second master)

curl -sfL https://get.k3s.io | K3S_URL=https://<IP-Node1>:6443 K3S_TOKEN=<isi-token-dari-node1> sh -s - server
Enter fullscreen mode Exit fullscreen mode

Install K3s agent (worker)

curl -sfL https://get.k3s.io | K3S_URL=https://<IP-Node1>:6443 K3S_TOKEN=<isi-token-dari-node1> sh -
Enter fullscreen mode Exit fullscreen mode

Top comments (0)