Masdika Loading..
Masdika.BIZ.ID

DevOps Engineer

Cloud Engineer

System Administrator

  • Home
  • Portofolio
  • Services
  • Resume
  • Skills
  • Blog
  • Contact
Masdika.BIZ.ID

DevOps Engineer

Cloud Engineer

System Administrator

Download CV

Recent Posts

  • CI/CD Laravel: Otomatisasi Deployment dengan Jenkins & Docker
  • Cara Kirim Notifikasi Otomatis SSL Expired via Email (Lengkap + Bash Script)
  • Panduan Lengkap Autoscaling di Kubernetes Bare-Metal (Lengkap untuk Pemula)
  • Panduan Lengkap: Deploy Website Statis ke Kubernetes Menggunakan Docker + NodePort
  • Cara Cerdas Menguasai Kubernetes (K8s): Panduan Lengkap Orkestrasi Kontainer untuk Developer Modern

Recent Comments

  1. Masdika.BIZ.ID on Cara Cerdas Menguasai Kubernetes (K8s): Panduan Lengkap Orkestrasi Kontainer untuk Developer Modern
  2. VSTRA on Cara Cerdas Menguasai Kubernetes (K8s): Panduan Lengkap Orkestrasi Kontainer untuk Developer Modern
  3. Rikiy on Cara Mudah Deploy Website Node.js Menggunakan Docker
  4. Masdika.BIZ.ID on Disaster Recovery Cluster (DRC) WordPress dengan MariaDB Galera dan Load Balancer Caddy
  5. someone on Disaster Recovery Cluster (DRC) WordPress dengan MariaDB Galera dan Load Balancer Caddy

Archives

  • August 2025
  • July 2025
  • June 2025

Categories

  • Tutorial

Masddika.BIZ.ID

  • About
  • Terms & Conditions
  • Privacy Policy
Blog Post

Panduan Lengkap Autoscaling di Kubernetes Bare-Metal (Lengkap untuk Pemula)

July 28, 2025 Tutorial by Masdika.BIZ.ID
Panduan Lengkap Autoscaling di Kubernetes Bare-Metal (Lengkap untuk Pemula)

Autoscaling adalah salah satu fitur paling menarik di Kubernetes. Dengan autoscaling, jumlah pod bisa bertambah atau berkurang secara otomatis berdasarkan beban kerja. Namun, banyak pemula mengira bahwa fitur ini hanya tersedia di cloud seperti AWS, GCP, atau Azure. Nyatanya, autoscaling juga bisa dilakukan di Kubernetes yang berjalan di server bare-metal. πŸ’»βš™οΈ

Artikel ini akan membimbing kamu secara lengkap untuk mengatur Horizontal Pod Autoscaler (HPA) di lingkungan Kubernetes bare-metal, mulai dari instalasi metrics-server, deployment contoh, hingga simulasi beban. Artikel ini cocok bagi kamu yang ingin membangun cluster Kubernetes di rumah, kantor, atau VPS tanpa layanan cloud.

❓ Apa itu Horizontal Pod Autoscaler (HPA)?

Horizontal Pod Autoscaler (HPA) adalah mekanisme yang memungkinkan Kubernetes untuk secara otomatis menambah atau mengurangi jumlah pod dalam suatu deployment berdasarkan metrik tertentu, biasanya CPU usage atau memory usage. πŸ“Š

HPA memantau pemakaian sumber daya dan menyesuaikan jumlah replika sesuai kebutuhan. Dengan begitu, kamu tidak perlu menyesuaikan jumlah pod secara manual saat terjadi lonjakan trafik atau beban sistem.

🧠 Contoh kasus:

  • Saat pengunjung website meningkat β†’ CPU naik β†’ HPA menambah pod
  • Saat trafik sepi β†’ CPU turun β†’ HPA mengurangi pod

Dengan sistem ini, aplikasi kamu menjadi lebih efisien dan responsif terhadap perubahan beban.

βš™οΈ Persiapan: Pastikan Metrics Server Terinstall

Metrics server adalah komponen penting agar HPA bisa membaca metrik seperti CPU dan memory dari setiap pod. Jalankan perintah berikut untuk menginstalnya:

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

πŸ”§ Konfigurasi untuk Bare-Metal

Karena kamu menggunakan bare-metal, kamu harus menambahkan beberapa argumen agar metrics-server bisa bekerja:

  1. Edit deployment metrics-server:
kubectl -n kube-system edit deployment metrics-server
  1. Tambahkan argumen ini pada bagian args:
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP,Hostname
- --kubelet-use-node-status-port
  1. Simpan dan keluar dari editor.
  2. Cek apakah metrics-server sudah jalan:
kubectl get pods -n kube-system -l k8s-app=metrics-server

Jika status READY adalah 1/1, berarti metrics-server berhasil berjalan βœ…

πŸ“¦ Deployment Contoh: Nginx + Autoscaling

Berikut adalah contoh file YAML lengkap untuk deploy aplikasi Nginx dan mengaktifkan autoscaling berdasarkan CPU usage:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-autoscale
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx-autoscale
  template:
    metadata:
      labels:
        app: nginx-autoscale
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80
        resources:
          requests:
            cpu: 100m
            memory: 128Mi
          limits:
            cpu: 200m
            memory: 256Mi
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-autoscale-svc
spec:
  selector:
    app: nginx-autoscale
  ports:
  - port: 80
    targetPort: 80
  type: NodePort
---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: nginx-autoscale-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: nginx-autoscale
  minReplicas: 1
  maxReplicas: 5
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 50

πŸ› οΈ Apply file YAML di atas:

kubectl apply -f nginx-autoscale.yaml

πŸ‘οΈ Cara Melihat Autoscaling Bekerja

Gunakan perintah berikut untuk melihat autoscaler aktif:

kubectl get hpa -w

Untuk melihat data metrik CPU dan memory:

kubectl top pods
kubectl top nodes

πŸ“ˆ Jika CPU usage melebihi target, HPA akan menambah jumlah pod.

πŸ§ͺ Simulasi Beban (Stress Test)

Untuk melihat efek autoscaling secara langsung, kamu bisa buat beban buatan:

kubectl run -it --rm --image=busybox load -- /bin/sh

Lalu jalankan:

while true; do wget -q -O- http://nginx-autoscale-svc.default.svc.cluster.local; done

Tunggu 1–2 menit dan lihat apakah jumlah pod bertambah dengan:

kubectl get hpa -w
kubectl get pods

πŸ“‰ Bagaimana Jika CPU Turun Lagi?

HPA tidak hanya menambah pod saat beban tinggi, tapi juga akan menurunkan jumlah pod secara otomatis saat CPU usage turun.

πŸ•’ Secara default, Kubernetes akan:

  • Cepat scale up saat CPU tinggi
  • Tunggu beberapa menit (stabilisasi) sebelum scale down untuk mencegah fluktuasi berlebihan

Contoh: dari 3 pod β†’ kembali ke 1 pod saat beban rendah.

βœ… Penutup

Dengan konfigurasi yang benar, kamu bisa menikmati fitur autoscaling Kubernetes bahkan di server bare-metal. Fitur ini membuat aplikasi kamu lebih efisien, stabil, dan mudah beradaptasi terhadap perubahan beban. πŸ’ͺπŸ”₯

Langkah selanjutnya:

  • Terapkan HPA ke aplikasi produksi (WordPress, Laravel, dll)
  • Integrasi Prometheus + Grafana untuk visualisasi metrik
  • Tambahkan autoscaling berdasarkan memory atau custom metric

Selamat mencoba! πŸŽ‰ Jangan ragu untuk bereksperimen dan mengembangkan cluster kamu lebih lanjut. Kubernetes opens endless possibilities! ☸️

Share:
Tags: autoscalingbaremetalHorizontal Pod Autoscalerkubernetes

Post navigation

Prev
Next
Write a comment Cancel Reply

Β© 2025 www.masdika.biz.id β€” Semua Hak Dilindungi