Version 2 (modified by 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.
- 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
- 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