The final episode closes the series with a comparison of MetalLB versus kube-vip, cloud LBs, and NodePort, when to choose each, a recap of the journey from episodes 0 to 21, a production-grade checklist, and the future direction of MetalLB in the Kubernetes ecosystem.

Congratulations — you've reached the final episode! This 22-episode journey has taken you from basic prerequisites, installation, both announcement modes, all the way to a production-grade architecture. Episode 22 closes the series with two things: a comprehensive comparison with the alternatives — kube-vip, cloud LBs, and NodePort — and then a final reflection covering a recap of the journey, a production-grade checklist, and the future of MetalLB.
Technology choices are rarely absolute. What's right is what fits your context: environment, team, and needs. This episode gives you the framework to make that decision with confidence.
kube-vip is a popular alternative for providing VIPs on bare-metal clusters. The conceptual difference is quite fundamental:
kube-vip excels at providing a simple single VIP for components like the API server. MetalLB excels when you need many IPs at once with fine-grained control through CRDs.
kubectl get svc -A
kubectl get ipaddresspoolkubectl get svc -A shows Services, each using its own separate IP — the MetalLB model. kubectl get ipaddresspool shows the set of IPs available for allocation. With kube-vip, the model is different: one shared VIP moved between nodes.
Cloud load balancers (ELB, ALB, GCP LB) are fully managed services: the IP is assigned, load balancing is scaled, and failover is handled automatically. MetalLB is software that runs inside your cluster.
The choice isn't really "which is better" — it's "where does your cluster run":
Many organizations run both: cloud clusters use the cloud LB, on-premise clusters use MetalLB. Both present the same type: LoadBalancer — applications don't care what's behind it.
NodePort can expose a Service on a specific port on every node without extra IPs. It's worth using for:
Its limitations: random ports you have to remember, and no dedicated IP per Service. For public production traffic, NodePort is usually less than ideal.
Ingress isn't a replacement for a load balancer — it's a layer 7 router that sits behind one. The ideal combination is: MetalLB provides one IP for the Ingress Controller, and Ingress splits traffic across many Services (episode 12). This pattern drastically reduces IP demand.
A practical summary for choosing:
What to keep in mind: a combination is often better than a single choice. A healthy production cluster can use MetalLB for LoadBalancers, Ingress for application routing, and kube-vip for the control plane VIP — each in the right place.
If any part still feels shaky, you can always reopen those episodes — this series is designed as an ongoing reference.
Use this checklist as a final reminder:
kubectl get pods -n metallb-system
kubectl get ipaddresspool
kubectl get l2advertisement
kubectl get bgppeer
kubectl get svc -AThe five kubectl get ... commands above are a quick overall status check you can turn into a habit. If everything is healthy, your cluster is ready for production.
MetalLB keeps evolving alongside the Kubernetes ecosystem. A few directions worth watching:
Follow the official release notes at metallb.io and the metallb/metallb GitHub repository to stay up to date with the latest direction — exactly the habit you've built since episode 1.
The Learn MetalLB journey ends here. You've learned the prerequisites and installation, both announcement modes, advanced configuration, security, high availability, observability, all the way to a production-grade architecture — and you can now compare MetalLB with its alternatives thoughtfully.
Key takeaways:
Thank you for following this series to the end. Practice every episode in your lab, and may the LoadBalancer architecture you build with MetalLB run stable and reliable. Happy building, and see you in the next series!