Setup K8s Untuk Kebutuhan Belajar di Linux Arch

Setup K8s Untuk Kebutuhan Belajar di Linux Arch
Ilustrasi setup Kubernetes lokal di Linux Arch untuk belajar, dengan node cluster dan alur orkestrasi container

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 --port saat 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.