Skip to main content

Centralized load balancing for Kubernetes

Manage Layer 4 and Layer 7 load balancers across multi-cloud and on-premise Kubernetes clusters with a unified control plane.

KubeLB architecture diagram showing hub-and-spoke model

Why KubeLB?

Traditional load balancer solutions require separate configuration for each cluster. KubeLB provides a centralized hub-and-spoke architecture for managing load balancers across your entire Kubernetes fleet.

Multi-cluster management

Manage load balancers for multiple Kubernetes clusters from a single control plane with tenant isolation.

Envoy-powered routing

Built on Envoy Proxy with xDS control plane for high-performance Layer 4 and Layer 7 load balancing.

Multi-cloud support

Works across any cloud provider or on-premise environment with support for MetalLB and cloud load balancers.

Quick start

Get KubeLB running in your environment in minutes

1

Install prerequisites

Ensure you have a management cluster with LoadBalancer support (cloud provider or MetalLB) and network access to tenant cluster nodes.
kubectl get svc -A | grep LoadBalancer
You should see at least one service with an external IP assigned.
2

Deploy KubeLB Manager

Install the KubeLB Manager in your management cluster using Helm:
helm pull oci://quay.io/kubermatic/helm-charts/kubelb-manager --version=v1.3.1 --untardir "." --untar
kubectl apply -f kubelb-manager/crds/
helm install kubelb-manager kubelb-manager/ --namespace kubelb --create-namespace
The manager hosts the Envoy xDS control plane and receives load balancer configurations from tenant clusters.
3

Deploy KubeLB CCM to tenant clusters

Install the Cloud Controller Manager in each tenant cluster:
helm pull oci://quay.io/kubermatic/helm-charts/kubelb-ccm --version=v1.3.1 --untardir "." --untar
helm install kubelb-ccm kubelb-ccm/ \
  --namespace kubelb \
  --create-namespace \
  --set clusterName=tenant-cluster-1 \
  --set kubeLbKubeconf=/path/to/management-kubeconfig
The CCM watches Services, Ingresses, and Gateway API resources, propagating configurations to the manager.
4

Create your first load balancer

Create a LoadBalancer Service in your tenant cluster:
apiVersion: v1
kind: Service
metadata:
  name: my-app
  namespace: default
spec:
  type: LoadBalancer
  ports:
    - port: 80
      targetPort: 8080
  selector:
    app: my-app
KubeLB will automatically provision a load balancer in the management cluster and route traffic to your tenant cluster.
kubectl get svc my-app -n default
You should see an external IP assigned to your service within a few seconds.

Explore by topic

Learn how to use KubeLB for different scenarios

Layer 4 load balancing

Configure TCP and UDP load balancing for Kubernetes Services with node port routing.

Layer 7 routing

Set up HTTP and gRPC routing with Ingress and Gateway API support.

Multi-cluster management

Manage load balancers across multiple tenant clusters with centralized control.

DNS and certificates

Automate DNS record creation and TLS certificate management for your services.

Monitoring and metrics

Monitor your load balancers with Prometheus metrics and Grafana dashboards.

Security and isolation

Learn about tenant isolation, RBAC, and secret management in KubeLB.

Ready to get started?

Install KubeLB in your Kubernetes clusters and start managing load balancers centrally.