Master (First Control Plane)
System Update & Prerequisites
sudo apt update && sudo apt upgrade -y
sudo apt install -y apt-transport-https curl
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
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
Install K3s server (first master)
curl -sfL https://get.k3s.io | sh -
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
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
Create namespace for cert-manager
kubectl create namespace cert-system
Install cert-manager
helm install cert-manager jetstack/cert-manager \
--namespace cert-system \
--create-namespace \
--set installCRDs=true
Wait for cert-manager to be ready
kubectl wait --for=condition=Available deployment --timeout=300s -n cert-system --all
Create namespace for Rancher (cattle-system)
kubectl create namespace cattle-system
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
Get the node token from master
cat /var/lib/rancher/k3s/server/node-token
Show initial Rancher password
echo "Password awal Rancher:"
kubectl get secret --namespace cattle-system bootstrap-secret -o go-template='{{.data.bootstrapPassword | base64decode}}{{ "\n" }}'
Show IP and port to access Rancher
kubectl get service -n cattle-system rancher
==========================================================
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
Install K3s agent (worker)
curl -sfL https://get.k3s.io | K3S_URL=https://<IP-Node1>:6443 K3S_TOKEN=<isi-token-dari-node1> sh -
Top comments (0)