https://store-images.s-microsoft.com/image/apps.5426.4fe16088-3084-462c-aa15-47302bd952af.238adfee-32b5-49c2-a321-1d731738ae1b.94f7e244-932a-4fb6-a1bd-865686fa723a

MetalLB Speaker

by pcloudhosting

Version 0.13.3+ Free Support on Ubuntu 24.04

The MetalLB Speaker is a core component of the MetalLB load-balancer system for Kubernetes. It runs as a DaemonSet on every node and is responsible for announcing the IP addresses of services to the network. In Layer 2 mode, it uses ARP to inform other devices on the subnet which node handles a given IP. In BGP mode, it communicates with routers using BGP to advertise service IPs across multiple subnets. The Speaker ensures that traffic directed to LoadBalancer services reaches the correct pod, enabling external access for bare-metal Kubernetes clusters.

Features of MetalLB Speaker:

  • Runs as a DaemonSet on every Kubernetes node.
  • Announces service IPs to the network (L2 via ARP, BGP via routers).
  • Works alongside MetalLB Controller for IP assignment.
  • Enables external LoadBalancer services on bare-metal clusters.
  • Supports high availability and scalable deployments.
  • Integrates with Kubernetes services seamlessly without application changes.
Common MetalLB Speaker Commands:
$ microk8s kubectl get pods -n metallb-system
$ microk8s kubectl describe pod -n metallb-system speaker-xxxxx
$ microk8s kubectl logs -n metallb-system speaker-xxxxx
$ microk8s kubectl get ds speaker -n metallb-system
  

To Check MetalLB Speaker Pod Image/Version:
$ microk8s kubectl get daemonset speaker -n metallb-system -o=jsonpath='{.spec.template.spec.containers[0].image}'

Access MetalLB Speaker Information:
  • Speaker Pod Status: microk8s kubectl get pods -n metallb-system
  • Speaker Logs: microk8s kubectl logs -n metallb-system speaker-xxxxx
  • Speaker DaemonSet: microk8s kubectl get ds speaker -n metallb-system

Disclaimer: MetalLB Speaker is open-source software distributed under the Apache License 2.0 and is part of the MetalLB project. It is maintained by the MetalLB community. The software is provided "as is" without any warranties or guarantees. Users are responsible for proper configuration, IP pool setup, network settings, and compliance with Kubernetes best practices.