Что такое MetalLB?

Когда вы запускаете Kubernetes в облаке (AWS, GCP, Azure), сервис типа LoadBalancer автоматически получает внешний IP.
Но если кластер работает на bare metal — то есть на ваших физических серверах без интеграции с облаком? В этом случае нужен MetalLB.

MetalLB — это реализация load balancer для bare-metal кластеров Kubernetes. Он позволяет использовать сервисы типа LoadBalancer даже без облачных провайдеров.


Как работает MetalLB

MetalLB раздаёт внешние IP сервисам двумя способами:

  • ARP/NDP режим – узлы отвечают на запросы ARP/NDP, и IP становится доступен в локальной сети.
  • BGP режим – MetalLB обменивается маршрутами с вашими роутерами по протоколу BGP, как настоящий балансировщик.

Альтернативы MetalLB

  • Kube-VIP – лёгкий вариант для HA control plane и сервисов типа LoadBalancer.
  • Keepalived + HAProxy/Nginx – более ручная, но гибкая схема.
  • Cilium LoadBalancer IPAM – если у вас Cilium в качестве CNI, он может сам выдавать LoadBalancer IP.
  • Облачные LB – если кластер гибридный, можно использовать встроенные балансировщики облаков.

Сценарии использования

  • Kubernetes на собственных серверах в дата-центре.
  • Публикация приложений (Prometheus, Grafana, Nginx, API) наружу.
  • Домашние кластеры и лаборатории на k3s/kubeadm.
  • Корпоративные кластеры, где важно полностью контролировать сеть.

Итог

MetalLB решает важную задачу: как выдать внешний IP сервисам в bare metal Kubernetes.
Если нужен более продвинутый контроль маршрутизации и отказоустойчивости — смотрите на Kube-VIP, Keepalived или Cilium.

Это один из самых востребованных инструментов в Kubernetes для работы вне облака.