1. Home
  2. Docs
  3. Self-hosted Server
  4. Kubernetes
  5. Cara Install LoadBalancer dengan MetalLB di Kubernetes

Cara Install LoadBalancer dengan MetalLB di Kubernetes

MetalLB adalah project open-source LoadBalancer dalam environment Kubernetes. Fungsi utama dari MetalLB adalah load balancing untuk services yang di-host di dalam kluster Kubernetes.

Fungsi Umum MetalLB LoadBalancer

  • Memberikan IP Address untuk Services Kubernetes: MetalLB memberikan IP untuk service-service di-host di dalam kluster Kubernetes. Dengan ini, aplikasi yang berjalan di dalam kluster dapat diakses dari luar kluster melalui IP yang dikelola oleh MetalLB.
  • Load Balancing Eksternal.
  • Mode Layer2 dan Layer3: Mempunyai pilihan mode tergantung pada kebutuhan dan konfigurasi jaringan kluster.
  1. Cara Install Helm Packages Manager Kubernetes.
  2. Cara Install LoadBalancer dengan MetalLB di Kubernetes. << you are in here
  3. Cara Install INGRESS Controller dengan NGINX di Kubernetes.
  4. Cara Setting StorageClass dengan LONGHORN di Kubernetes.
  5. Cara Deploy Manifest Aplikasi di Kubernetes.
  6. Cara Setting Let’s Encrypt SSL dengan CERT MANAGER di Kubernetes.

Install MetalLB Menggunakan Helm

Kita bisa lihat dokumentasi sebelumnya yaitu Cara Install Helm Packages Manager Kubernetes untuk dapat mengikuti panduan dalam dokumentasi ini.

Tambahkan repositori MetalLB dengan perintah:

helm repo add metallb https://metallb.github.io/metallb

Untuk cek repositori yang sudah kita tambahkan:

$ helm repo ls
NAME    URL                              
metallb https://metallb.github.io/metallb

jalankan perintah untuk install LoadBalancer MetalLB:

$ helm install metallb metallb/metallb -n metallb-system --create-namespace --debug 

Service metallb saya buat di dalam namespace baru yang bernama metallb-system dengan parameter -n metallb-system --create-namespace

Kita cek status service nya dengan perintah:

$ kubectl -n metallb-system get pods
NAME                                  READY   STATUS              RESTARTS   AGE
metallb-controller-5f9bb77dcd-wtkcq   0/1     ContainerCreating   0          3m22s
metallb-speaker-jsdwx                 0/4     Init:0/3            0          3m22s
metallb-speaker-mbk8b                 0/4     Init:0/3            0          3m22s
metallb-speaker-pppxr                 0/4     Init:0/3            0          3m22s
metallb-speaker-t4cb9                 0/4     Init:0/3            0          3m22s
metallb-speaker-wsk66                 0/4     Init:0/3            0          3m22s

Terlihat status service/pod MetalLB yang kita install masih dalam proses. Tunggu saja beberapa saat sampai status RUNNING.

IP Address Pool dan L2 Advertisement

Terakhir kita deploy untuk konfigurasi IP Pool dan Advertisement yang dibutuhkan MetalLB untuk expose service pod.

IP Address Pool

Buat file dengan nama ipaddresspool.yaml.

$ nano ipaddresspool.yaml
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: default-pool
  namespace: metallb-system
spec:
  addresses:
  - 192.168.10.0/24
  - 192.168.9.1-192.168.9.5
  - fc00:f853:0ccd:e799::/124

Sesuaikan dengan namespace dan pool ip service aplikasi kita pada parameter addresses. Kemudian deploy dengan perintah :

kubectl apply -f ipaddresspool.yaml

L2 Advertisement

Lanjut buat file dengan nama l2advertisement.yaml

$ nano l2advertisement.yaml
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: default
  namespace: metallb-system
spec:
  ipAddressPools:
  - default-pool

Sesuaikan namespace dan ipAddressPools nya, kemudian deploy dengan perintah:

kubectl apply -f l2advertisement.yaml

Sampai tahap ini kita sudah melakukan Install LoadBalancer di Kubernetes menggunakan MetalLB, selanjutkan kita lanjut ke tahap berikut nya yaitu Cara Install INGRESS Controller dengan NGINX.

Official Website : https://metallb.universe.tf

Tags ,

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *