MetalLB ini akan digunakan sebagai internal LoadBalancer khusus untuk pemasangan kluster kubernetes Bare Metal (Bukan melalui cloud provider)
- Kluster Kubernetes
- Helm 3
- Tambah repo metallb:
helm repo add metallb https://metallb.github.io/metallb
helm repo update
- Install
kubectl create ns load-balancer
helm install metallb metallb/metallb -n load-balancer
- Cek status
watch -n2 'kubectl get all -n load-balancer'
- Buat file
pool.yaml
- Isikan:
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: production
namespace: load-balancer
spec:
# Masukkan range subnet IP node. IP range tidak boleh digunakan oleh service lain.
addresses:
- 192.168.56.10/30
- Buat file
advertise.yaml
- Isikan:
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: external
namespace: load-balancer
spec:
ipAddressPools:
- production
- Apply:
kubectl apply -f pool.yaml -f advertise.yaml
- Cek status misalnya pada ingress:
watch -n2 'kubectl get all -n ingress'
Apabila berhasil, maka IP Eksternal LoadBalancer akan terisi dengan IP MetalLB.