Skip to main content

Metal LB

This section is to get metallb setup and working for a bare metal setup.

Let create the namespace

kubectl create namespace metallb-system
kubectl label namespace metallb-system pod-security.kubernetes.io/enforce=privileged

We will use helm for ease of upgrades and the initial install. First, we need to add the repo.

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

Now, install metallb with helm.

helm install metallb metallb/metallb -n metallb-system

We need to choose a pool of IP addresses that metal lb can hand out for the type LoadBalancer. In my case, I really just want this for nginx ingress. We need to create the following yaml file to apply to the API.

apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: main-pool
  namespace: metallb-system
spec:
  addresses:
  - 192.168.249.10-192.168.249.11
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: l2-lb
  namespace: metallb-system

Lets verify everything is up and running.

kubectl get pods -n metallb-system