Learn MetalLB (a load balancer for bare-metal and on-premise Kubernetes clusters) from the basics to production-grade: pre-requisite skills & environment setup, background history & why you need MetalLB, core concepts & main architecture, setup & installation, IPAddressPool & IPAM, layer 2 mode, BGP mode, your first load balancer service, advertisement customization, multi-pool & traffic policies, validating admission & CRD, observability & monitoring, ingress & nginx integration, peering & network design, security & access control, high availability & failover, advanced BGP (communities, localPref, aggregation), IP planning & network scale, gitops & config as code, performance & troubleshooting, latest stable features in v0.16.x, production-ready architecture, and the alternative ecosystem & final reflection, with a total of 23 episodes.
Before touching MetalLB, you need to master Kubernetes Services, basic Linux networking (ARP and BGP), as well as the kubectl, helm, and ip CLIs. This episode guides you through preparing a bare-metal cluster, installing kubectl and helm, and planning an IP block for external IPs.

MetalLB was born out of the needs of bare-metal clusters that lacked a cloud-native load balancer. This episode traces the project's history from Google Cloud 2017 to the CNCF, the problem it solves, and early comparisons with kube-vip, cloud LB, and NodePort.

MetalLB consists of two main components: the metallb-controller, which allocates IPs from a pool, and the metallb-speaker, which announces IPs on each node. This episode explains the end-to-end workflow and the roles of the IPAddressPool, L2Advertisement, BGPAdvertisement, and BGPPeer CRDs.

This episode guides you through installing MetalLB two ways: the metallb.yaml manifest and the Helm chart. After installing, you verify the controller and speaker pods, then create the initial configuration with your first IPAddressPool and L2Advertisement.

IPAddressPool is the heart of MetalLB's address management. This episode covers how to define IP ranges as ranges and CIDRs, the autoAssign and avoidBuggyIPs options, the controller's allocation behavior, and IP release when a Service is deleted.

Layer 2 mode is the simplest way to announce IPs: the speaker on one elected node answers ARP/NDP for the Service IP. This episode covers L2Advertisement, leader election, the failover mechanism when a node dies, and the characteristics and limitations of this mode.

BGP mode makes the speaker peer with external routers and advertise Service IP prefixes. This episode covers BGPPeer and BGPAdvertisement, ECMP which spreads traffic across many nodes, and the characteristics and BGP router requirements of this mode.

Time to see MetalLB in action: deploy an application, expose it via a LoadBalancer Service, verify the external IP, and test access from outside the cluster. This episode also covers basic troubleshooting for unassigned IPs and missing advertisements.

Advertisements don't have to be one-size-fits-all. This episode dissects advanced L2Advertisement options like interfaces and nodeSelectors, BGPAdvertisement options like communities, aggregationLength and localPref, plus using multiple advertisements at once.

Production clusters usually need more than one IP pool. This episode covers separating pools per environment, choosing a pool per Service via annotation, and the impact of externalTrafficPolicy Local versus Cluster on source IPs, connectivity, and failover.
