Introduction
MetalLB adalah tools loadbalancer untuk bare-metal kubernetes cluster. Untuk kebutuhan MetalLB kita harus meyiapkan IP Address yang bisa digunakan (Avalilable).
Installation
Chck strict ARP
kubectl get configmap -n kube-system kube-proxy -o yaml |grep strictARP
Jika false, kita harus ubah ke true
kubectl edit configmap -n kube-system kube-proxy
Kemudian cari pada bagian strictARP
apiVersion: v1
data:
config.conf: |-
........
ipvs:
.........
strictARP: true # Change here to true
.........
.........
Sekarang kita check versi metalLB pada saat tutor ini dibuat (0.15.2)
MetalLB_RTAG=$(curl -s https://api.github.com/repos/metallb/metallb/releases/latest|grep tag_name|cut -d '"' -f 4|sed 's/v//')
echo $MetalLB_RTAG
Install MetalLB dengan apply
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v$MetalLB_RTAG/config/manifests/metallb-native.yaml
Check apakah metalLB sudah terinstall
kubectl get all -n metallb-system

Create IP Pool
Membuat IP Pool untuk metalLB
cat <<EOF | kubectl apply -f -
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: ip-tools
namespace: metallb-system
spec:
addresses:
- 10.100.19.91-10.100.19.100
autoAssign: false
---
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: ip-apps
namespace: metallb-system
spec:
addresses:
- 10.100.19.71-10.100.19.90
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: adv-pool1
namespace: metallb-system
spec:
ipAddressPools:
- ip-tools
- ip-apps
EOF
- ip-tools -> Kita membuat pools untuk kebutuhan tools, dan kita disable autoAssign
- ip-apps -> Kita membuat pools untuk kebutuhan aplikasi, dan kita enable untuk autoAssign
Check IP Pool yang sudah kita buat
kubectl get IPAddressPool -n metallb-system
