Setup K8s Untuk Kebutuhan Belajar di Linux Arch
Panduan praktis untuk bikin lab Kubernetes lokal di Arch Linux, ringan tapi tetap realistis buat latihan harian.
TL;DR
- Pakai k3d + k3s biar setup cepat, ringan, dan minim drama.
- Siapkan dependensi utama: Docker, kubectl, k3d, Helm.
- Buat cluster lokal 1 server + 2 agent untuk simulasi dasar.
- Tambahkan dashboard/observability secukupnya (opsional).
- Latihan wajib: deploy app, expose service, scaling, configmap, secret, ingress.
Kenapa Setup Lokal Dulu?
Kalau tujuan kamu belajar konsep Kubernetes, setup lokal itu paling efisien:
- biaya nyaris nol,
- bisa reset kapan aja,
- aman buat eksperimen (gagal pun santai).
Untuk kebutuhan belajar, kamu nggak perlu langsung lompat ke cluster cloud yang kompleks.
Arsitektur Lab Sederhana
Kita pakai skema ini:
- 1 node control-plane (server)
- 2 node worker (agent)
- semua jalan di laptop/PC via Docker
Cukup buat latihan:
- scheduling,
- deployment,
- service discovery,
- ingress dasar.
1) Install Dependensi di Arch Linux
sudo pacman -Syu --noconfirm
sudo pacman -S --noconfirm docker kubectl helm
Install k3d (opsi AUR atau binary release):
# contoh via helper AUR
yay -S k3d
Aktifkan Docker:
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
newgrp docker
Cek versi tool:
docker --version
kubectl version --client
k3d version
helm version
2) Buat Cluster K3d
Contoh cluster bernama lab:
k3d cluster create lab \
--agents 2 \
--servers 1 \
--port "8080:80@loadbalancer" \
--port "8443:443@loadbalancer"
Verifikasi node:
kubectl get nodes -o wide
Kalau semua node status Ready, lanjut.
3) Deploy Aplikasi Pertama
Deploy Nginx:
kubectl create deployment web --image=nginx:stable
kubectl expose deployment web --port=80 --type=ClusterIP
kubectl get pods,svc
Tes akses via port-forward:
kubectl port-forward svc/web 8081:80
Buka http://localhost:8081.
4) Belajar Objek Penting K8s
Deployment + Scaling
kubectl scale deployment web --replicas=3
kubectl get pods -w
ConfigMap
kubectl create configmap app-config --from-literal=APP_MODE=lab
kubectl describe configmap app-config
Secret
kubectl create secret generic app-secret --from-literal=API_KEY=demo123
kubectl get secret app-secret
5) Setup Ingress Dasar
K3s biasanya sudah include Traefik. Cek dulu:
kubectl get pods -n kube-system | grep -i traefik
Buat ingress sederhana untuk service web, lalu arahkan host lokal via /etc/hosts kalau diperlukan.
6) Rencana Latihan 7 Hari (Biar Nggak Stuck)
Hari 1: Deploy + expose service
Hari 2: Scaling + rollout + rollback
Hari 3: ConfigMap + Secret
Hari 4: Liveness/readiness probe
Hari 5: Ingress + multi-service
Hari 6: Helm chart basic
Hari 7: Simulasi mini project end-to-end
Kunci belajar K8s itu konsisten praktik, bukan hafalan command doang.
Troubleshooting Cepat
Node NotReady
- cek Docker daemon
- cek resource RAM/CPU
Image pull lambat/gagal
- coba image lebih kecil
- cek DNS / koneksi internet
Port bentrok
- ganti mapping
--portsaat create cluster
Penutup
Untuk kebutuhan belajar di Arch Linux, kombinasi k3d + kubectl + helm itu sweet spot: ringan, cepat, dan cukup representatif.
Kalau nanti materi dasar udah nyaman, baru naik level ke:
- monitoring stack (Prometheus/Grafana),
- GitOps (ArgoCD/Flux),
- atau managed Kubernetes di cloud.