Default LoadBalance dari k3s adalah servicelb (klipper-lb). Namun, ini memiliki keterbatasan dalam lingkunggan on-prem atau tanpa adanya integrasi dengan cloud provider. Mengganti servicelb dengan MetalLB adalah salah satu cara untuk Service Load Balance dapat bekerja dalam lingkungan On-Prem.
Servicelb secara default digunakan K3s dalam installasi. Untuk menonaktifkannya, Anda harus memulai K3s dengan flag --disable servicelb
Untuk mendisable builtin sevicelb dapat dilakukan dengan menjalankan script installasi dengan flag:
curl -sfL https://get.k3s.io | sh -s - --disable servicelb
Atau anda langsung bisa menjalankan
k3s server --disable servicelb
Kita akan menggunakan helm untuk installasi MetalLB, pertama add repo dari metallb:
helm repo add metallb https://metallb.github.io/metallb
helm repo update
Instal MetalLB pada cluster menggunakan Helm:
helm install metallb metallb/metallb --namespace metallb-system --create-namespace
MetalLB akan iddle tanpa kita menset beberapa konfigurasi. Apply configurasi ini pada cluster
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: example
namespace: metallb-system
spec:
ipAddressPools:
- local-pool
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: local-pool
namespace: metallb-system
spec:
addresses:
- 172.20.255.1-172.20.255.255
local-pool merupakan pool dari ip address jaringan local. usahakan tidak bertabrakan dengan dhcp pool dalam jaringan kalian.