wiki:k8snetworking2023

Version 2 (modified by deepthi, 12 months ago) ( diff )

--

Issuing a Virtual IP to a Service Using MetalLB on Kubernetes

MetalLB is a load balancer implementation for bare metal Kubernetes clusters, using L2 advertisements. This tutorial will guide you through the process of setting up MetalLB in your Kubernetes cluster and assigning a virtual IP to a service.

Step 1: Install MetalLB

MetalLB can be installed via a manifest or using Helm. We'll use the manifest method here.

1. Apply the MetalLB manifest:

kubectl apply -f
https://raw.githubusercontent.com/metallb/metallb/v0.13.12/con
fig/manifests/metallb-native.yaml

Note: Ensure you're using the latest version of MetalLB.

2. Verify the Installation.

kubectl get pods -n metallb-system

You should see the MetalLB pods running.

Step 2: Configure MetalLB

MetalLB can operate in either Layer 2 mode or BGP mode. We'll use Layer 2 mode for simplicity.

  1. Create a ConfigMap for MetalLB: Define a range of IP addresses that MetalLB will manage. Create a file named metallb-pool.yaml with the following content:
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: ippool
  namespace: metallb-system
spec:
  addresses:
  - 192.168.1.200/32
  - 192.168.1.240-192.168.1.250

Replace 192.168.1.240-192.168.1.250 with your desired IP range.

Apply the Pool:

kubectl apply -f metallb-pool.yaml

  1. Create a L2 Advertisement: When additional IP ranges are defined in the config- map, they need to be advertised on to the network. Create a file named L2add.yaml with the following content:
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: example
  namespace: metallb-system
spec:
  ipAddressPools:
  - ippool
Note: See TracWiki for help on using the wiki.