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

  • Cara Deploy WordPress di Kubernetes Lengkap dengan SSL Let’s Encrypt
  • Panduan Lengkap Install MetalLB di Kubernetes (VPS/Bare Metal) dengan IP Publik
  • Panduan Lengkap Deploy Ingress NGINX dan Cert-Manager Kubernetes dengan HTTPS Otomatis (Let’s Encrypt)
  • Cara Install Kubernetes dengan Ansible di 2 Server (Master dan Worker)
  • Monitoring Docker Container dengan CAdvisor, Node Exporter, Prometheus, dan Grafana

Recent Comments

  1. Masdika.BIZ.ID on Cara Install Kubernetes dengan Ansible di 2 Server (Master dan Worker)
  2. wwqqs on Cara Install Kubernetes dengan Ansible di 2 Server (Master dan Worker)
  3. Rio Ardiansyah on Panduan Lengkap Redis Docker untuk WordPress
  4. Masdika.BIZ.ID on Cara Monitoring Status Disk RAID di Server Dell Menggunakan Bash Script dan PercCLI
  5. fafiki on Cara Monitoring Status Disk RAID di Server Dell Menggunakan Bash Script dan PercCLI

Archives

  • July 2025
  • June 2025

Categories

  • Tutorial

Masddika.BIZ.ID

  • About
  • Terms & Conditions
  • Privacy Policy
Blog Post

Panduan Lengkap Install MetalLB di Kubernetes (VPS/Bare Metal) dengan IP Publik

June 30, 2025 Tutorial by Masdika.BIZ.ID
Panduan Lengkap Install MetalLB di Kubernetes (VPS/Bare Metal) dengan IP Publik

MetalLB adalah Load Balancer berbasis software untuk Kubernetes yang digunakan di lingkungan bare metal atau VPS. Berbeda dengan cloud provider seperti AWS, GCP, atau Azure yang menyediakan LoadBalancer secara otomatis, MetalLB memberikan kemampuan serupa di lingkungan on-premise atau VPS.

Dengan MetalLB, kamu bisa memberikan akses IP publik langsung ke service Kubernetes dengan tipe LoadBalancer. Ini sangat berguna untuk deploy aplikasi production seperti website, API, hingga layanan internal.

🚀 Manfaat MetalLB

  • 🌐 Expose service Kubernetes ke IP publik.
  • 🛡️ Tidak perlu beli alat hardware load balancer.
  • 🏋️ Hemat biaya untuk deploy di VPS atau bare metal.
  • 🌟 Mendukung High Availability dengan pengaturan IP failover.

📁 Struktur Folder MetalLB

MetalLB/
├── ip-pool.yaml
├── metallb-native.yaml
└── namespace.yaml

🔧 Isi File YAML

📂 namespace.yaml

apiVersion: v1
kind: Namespace
metadata:
  name: metallb-system

📂 metallb-native.yaml

apiVersion: metallb.io/v1beta1
kind: MetalLB
metadata:
  name: metallb
  namespace: metallb-system

📂 ip-pool.yaml

✅ Contoh jika hanya punya 1 IP:

apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: public-pool
  namespace: metallb-system
spec:
  addresses:
  - 103.100.62.161/32
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: l2adv
  namespace: metallb-system
spec:
  ipAddressPools:
  - public-pool

✅ Contoh jika punya 2 IP:

apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: public-pool
  namespace: metallb-system
spec:
  addresses:
  - 103.100.62.161-103.100.62.162
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: l2adv
  namespace: metallb-system
spec:
  ipAddressPools:
  - public-pool

✅ Contoh jika punya banyak IP (range):

apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: public-pool
  namespace: metallb-system
spec:
  addresses:
  - 103.100.62.160-103.100.62.170
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: l2adv
  namespace: metallb-system
spec:
  ipAddressPools:
  - public-pool

🚀 Catatan: Ganti IP sesuai IP publik milik VPS atau server kamu.

🚀 Cara Install MetalLB

1. Buat Namespace

kubectl apply -f MetalLB/namespace.yaml

2. Install MetalLB Controller dan CRD

kubectl apply -f https://github.com/metallb/metallb/releases/latest/download/metallb-native.yaml

Atau gunakan file lokal jika sudah disiapkan:

kubectl apply -f MetalLB/metallb-native.yaml

3. Deploy IP Pool dan Advertisement

kubectl apply -f MetalLB/ip-pool.yaml

🔍 Verifikasi Installasi

📊 Cek Pod MetalLB:

kubectl get pod -n metallb-system

Hasilnya harus seperti:

NAME                          READY   STATUS    RESTARTS   AGE
controller-xxxx               1/1     Running   0          xxm
speaker-xxxx                  1/1     Running   0          xxm

📊 Cek IP Pool:

kubectl get ippools -n metallb-system

📊 Cek L2Advertisement:

kubectl get l2advertisements -n metallb-system

🔧 Testing dengan Service LoadBalancer

Contoh buat service test:

apiVersion: v1
kind: Service
metadata:
  name: nginx-test
spec:
  selector:
    app: nginx-test
  ports:
    - port: 80
      targetPort: 80
  type: LoadBalancer

Lalu cek:

kubectl get svc

Akan muncul External-IP dari range MetalLB.

💡 Troubleshooting MetalLB

  • 🛑 IP tidak muncul di External-IP:
    • Pastikan Pod speaker dan controller Running.
    • Cek firewall VPS, pastikan port layer 2 dibuka (jika pakai L2Advertisement).
  • 🚧 Tidak bisa diakses dari luar:
    • Pastikan rentang IP di ip-pool.yaml memang dimiliki VPS kamu.
    • Cek apakah ada IP conflict.

🌟 Kesimpulan

MetalLB adalah solusi open-source yang powerful untuk membuat LoadBalancer di Kubernetes pada lingkungan bare metal dan VPS.

🚀 Dengan MetalLB, kamu mendapatkan:

  • 🌐 Load Balancer tanpa cloud provider.
  • 🔒 IP publik langsung untuk akses aplikasi.
  • 🚧 Konfigurasi fleksibel dan sederhana.
  • 🌟 Skalabilitas untuk kebutuhan production.
Share:
Tags: kubernetesmetallb

Post navigation

Prev
Next
Write a comment Cancel Reply

© 2025 www.masdika.biz.id — Semua Hak Dilindungi