Что такое 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 для работы вне облака.