awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
metallb avatar

metallb/metallb

0
View on GitHub↗
8,243 stars·1,056 forks·Go·Apache-2.0·10 viewsmetallb.io↗

Metallb

MetalLB is a Kubernetes load balancer implementation and IP address manager designed for bare metal clusters. It functions as a networking tool that provides external connectivity and traffic distribution by assigning external IPv4 and IPv6 addresses to services.

The project differentiates itself by providing two distinct advertisement modes. It can operate as a BGP routing controller, using the Border Gateway Protocol to announce service IPs to external routers with support for bidirectional forwarding detection and VRF-aware routing. Alternatively, it can act as a Layer 2 network advertiser, responding to ARP and NDP requests to route traffic without requiring router configuration.

The system covers comprehensive IP address management, including the definition of CIDR-based pools, static and dynamic allocation policies, and dual-stack networking support. It also includes capabilities for monitoring network telemetry, managing service failover, and integrating with various Kubernetes network plugins.

Installation and lifecycle management are supported through a Kubernetes Operator, with specific deployment adaptations available for OpenShift and OpenStack environments.

Features

  • Border Gateway Protocol Configurations - Uses the Border Gateway Protocol to announce service IP addresses to external network routers.
  • IP Address Management - Establishes peering sessions with routers to announce external IP addresses and distribute incoming traffic.
  • BGP IP Advertisements - Broadcasts IP addresses from selected pools to network peers using the Border Gateway Protocol.
  • Dual-Stack Networking - Implements simultaneous support for IPv4 and IPv6 addressing within Kubernetes cluster networking.
  • Bare Metal Environments - Provides external connectivity and traffic distribution for Kubernetes clusters running on physical hardware.
  • Bare Metal Address Advertisement - Uses routing protocols to announce service addresses specifically in bare metal environments.
  • ARP and NDP Responders - Advertises IP addresses to a local network by responding to ARP and NDP requests.
  • IPv6 Prefix Advertisements - Broadcasts IPv6 network prefixes to neighboring routers to enable external connectivity for services.
  • Layer 2 IP Advertisements - Responds to local network requests to route traffic to services without requiring router configuration.
  • IP Address Management Systems - Defines and allocates pools of IPv4 and IPv6 addresses to Kubernetes services.
  • Layer 2 Network Advertisers - Responds to ARP and NDP requests on a local network to route traffic without router configuration.
  • Load Balancers - Assigns external IP addresses to services in bare metal Kubernetes clusters to distribute network traffic.
  • Load Balancer IP Address Management - Automates the allocation and announcement of IPv4 and IPv6 addresses for load balancer services.
  • BGP Peer Configuration - Sets up connections with external routers to exchange routing information for network load balancing.
  • Network Routing Protocols - Broadcasts the location of assigned IP addresses to the external network using routing protocols.
  • Service IP Advertisements - Broadcasts service IP addresses to external routers using the Border Gateway Protocol to direct traffic.
  • Service Exposure - Assigns external IP addresses to make internal cluster services reachable from outside networks.
  • BGP Route Distribution - Distributes network routes to external routers using the Border Gateway Protocol to direct traffic to services.
  • Traffic Distribution - Establishes peering sessions with routers to distribute incoming traffic across multiple nodes.
  • Dynamic IP Address Allocators - Automatically allocates available IP addresses from defined ranges to services for dynamic environment assignment.
  • Operator-Based Lifecycles - Simplifies installation and lifecycle management by using custom resource definitions via a Kubernetes Operator.
  • Resource Controllers - Uses custom controllers to synchronize desired network state from Kubernetes API objects to runtime configuration.
  • Kubernetes Network Operators - Connects with standard CNI network plugins to automate service exposure and connectivity.
  • BFD-BGP Integration - Links routing sessions with bidirectional forwarding detection to trigger rapid route convergence upon failure.
  • BGP Autonomous System Overrides - Presents a specific autonomous system number to a peer for multi-tenant network scenarios.
  • Bidirectional Forwarding Detection - Uses bidirectional forwarding detection to identify path failures faster than standard BGP keep-alive timers.
  • Service Registration and Failover - Detects node failures and reassigns IP addresses to healthy nodes to maintain service availability.
  • Next-Hop Node Selection - Restricts which nodes act as next-hops for specific IP pools using node selectors.
  • Priority-Based Allocation Policies - Controls how IP addresses are assigned using priority levels and selectors to restrict specific pools.
  • Shared IP Address Assignments - Colocates multiple services on a single IP address using shared keys and distinct ports.
  • Static IP Enforcement - Assigns fixed, predetermined IP addresses to specific services to ensure DNS consistency.
  • Static IP Requests - Allows services to request a precise IP address or pool to ensure consistent external routing.
  • BGP Session Management - Handles session lifecycles and pairs them with failure detection to ensure high availability of routing.
  • Multi-Protocol Routing - Configures sessions with support for multi-protocol routing to ensure stable and flexible network connectivity.
  • Node Peering Restrictions - Limits which nodes establish connections with specific peers using label selectors.
  • Peer-Based Advertisement Limits - Constrains the advertisement of specific IP pools to a designated subset of BGP peers.
  • BGP Advertisement Policies - Assigns different advertisement attributes to specific services based on label selectors.
  • Traffic Routing Controllers - Implements announcement modes based on traffic policies to determine how external requests reach pods.
  • Route Attribute Management - Adjusts routing attributes to manage how address pools are advertised across diverse network topologies.
  • VRF Routing Support - Establishes routing sessions using interfaces assigned to a virtual routing and forwarding table.
  • Load Balancing and Ingress - Network load-balancer for Kubernetes using standard routing.

Star history

Star history chart for metallb/metallbStar history chart for metallb/metallb

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does metallb/metallb do?

MetalLB is a Kubernetes load balancer implementation and IP address manager designed for bare metal clusters. It functions as a networking tool that provides external connectivity and traffic distribution by assigning external IPv4 and IPv6 addresses to services.

What are the main features of metallb/metallb?

The main features of metallb/metallb are: Border Gateway Protocol Configurations, IP Address Management, BGP IP Advertisements, Dual-Stack Networking, Bare Metal Environments, Bare Metal Address Advertisement, ARP and NDP Responders, IPv6 Prefix Advertisements.

What are some open-source alternatives to metallb/metallb?

Open-source alternatives to metallb/metallb include: frrouting/frr — FRRouting is an internet routing suite comprising a collection of daemons that implement standard IPv4 and IPv6… fosrl/pangolin — Pangolin is a zero-trust remote access platform designed to provide secure, identity-aware connectivity to private… acassen/keepalived — Keepalived is a high availability manager and virtual IP failover tool that ensures continuous service availability.… netflix/eureka — Eureka is a service registry and discovery server that serves as a coordination tool for microservices. It provides a… netbirdio/netbird — NetBird is a zero-trust networking platform that builds secure, encrypted peer-to-peer overlay networks using the… nats-io/nats-server — NATS Server is a high-performance, lightweight messaging system designed for cloud-native applications, edge…

Open-source alternatives to Metallb

Similar open-source projects, ranked by how many features they share with Metallb.
  • frrouting/frrFRRouting avatar

    FRRouting/frr

    4,184View on GitHub↗

    FRRouting is an internet routing suite comprising a collection of daemons that implement standard IPv4 and IPv6 routing protocols. It provides a protocol engine for BGP, an EVPN network virtualizer, and an MPLS label manager, alongside a gRPC routing interface for programmatic configuration and data retrieval using YANG models. The suite is distinguished by its extensibility through a Lua scripting framework that executes custom scripts at internal hooks to modify routing behavior. It also features a transactional configuration model that uses separate candidate and running databases to ensur

    Cbabelbgpeigrp
    View on GitHub↗4,184
  • fosrl/pangolinfosrl avatar

    fosrl/pangolin

    21,255View on GitHub↗

    Pangolin is a zero-trust remote access platform designed to provide secure, identity-aware connectivity to private network resources. It functions as a cloud-native network controller that orchestrates encrypted tunnels, traffic routing, and access policies across distributed environments. By leveraging WireGuard for secure data transport, the platform enables authenticated access to internal web applications, terminal sessions, and remote desktops without exposing services to the public internet. The platform distinguishes itself through a declarative infrastructure model that synchronizes n

    TypeScriptcrowdsecdockerhome-lab
    View on GitHub↗21,255
  • acassen/keepalivedacassen avatar

    acassen/keepalived

    4,587View on GitHub↗

    Keepalived is a high availability manager and virtual IP failover tool that ensures continuous service availability. It coordinates the migration of floating IP addresses between master and backup nodes using the Virtual Router Redundancy Protocol to manage router redundancy and seamless failover. The project distinguishes itself by integrating with the Linux kernel IPVS module to function as a transport-layer load balancer. It distributes network traffic across backend servers using various scheduling algorithms and forwarding methods such as NAT, direct routing, or tunneling. The system in

    Cbfdcdaemon
    View on GitHub↗4,587
  • netflix/eurekaNetflix avatar

    Netflix/eureka

    12,712View on GitHub↗

    Eureka is a service registry and discovery server that serves as a coordination tool for microservices. It provides a distributed service registry where instances record their network locations and health status to enable dynamic communication without the use of hardcoded addresses. The system functions as a client-side load balancing framework, providing location data to consumers so they can distribute network traffic across available instances. It employs a heartbeat-based health monitor to track instance availability and automatically removes unresponsive nodes from the registry to manage

    Java
    View on GitHub↗12,712
See all 30 alternatives to Metallb→