Prerequisites
Before installing KubeLB, ensure you have:Management Cluster
A Kubernetes cluster with LoadBalancer service support (cloud provider or MetalLB)
Tenant Cluster
One or more Kubernetes clusters that need load balancing services
Network Connectivity
Network access from management cluster to tenant cluster nodes (NodePort range: 30000-32767)
Helm 3.x
Helm CLI installed for deploying charts
Installation Overview
KubeLB installation consists of two main steps:- Deploy KubeLB Manager to the management cluster
- Deploy KubeLB CCM to each tenant cluster
Step 1: Deploy KubeLB Manager
The KubeLB Manager runs in your management cluster and provides the central control plane.Create Values File
Create a
values.yaml file for your configuration:values.yaml
For Gateway API support, add
enableGatewayAPI: true to the kubelb section.Step 2: Deploy KubeLB CCM
The KubeLB CCM must be installed in each tenant cluster that needs load balancing services.Create Kubeconfig Secret
Switch to your tenant cluster context and create a kubeconfig for accessing the management cluster.First, create a ServiceAccount in the management cluster for the tenant:Create a kubeconfig file and then create a secret in the tenant cluster:
Test Your Installation
Let’s verify that KubeLB is working by creating a test service.Create Test Application
In your tenant cluster, create a simple nginx deployment:Apply the manifest:
test-app.yaml
Check Service Status
Wait for the LoadBalancer IP to be assigned:After a few moments, you should see an EXTERNAL-IP assigned:
Verify Load Balancer in Management Cluster
Switch to the management cluster and check that the LoadBalancer CRD was created:You should see:
Next Steps
Configure Gateway API
Set up Layer 7 routing with Gateway API
Use Ingress Resources
Configure HTTP/HTTPS routing with Ingress
Multi-Tenant Setup
Learn about managing multiple tenant clusters
Monitoring & Observability
Set up metrics and monitoring for KubeLB
Security
Verify Chart Signature
All KubeLB Helm charts are cryptographically signed using Sigstore Cosign:Verify Image Signature
Troubleshooting
CCM Cannot Connect to Management Cluster
If the CCM cannot connect to the management cluster:- Verify the kubeconfig secret exists and is correctly formatted
- Check network connectivity from tenant to management cluster
- Verify RBAC permissions for the tenant ServiceAccount
LoadBalancer IP Not Assigned
If services don’t receive an external IP:- Check that the management cluster has a working LoadBalancer implementation
- Verify the manager pods are running in the management cluster
- Check manager logs for errors
Traffic Not Reaching Pods
If traffic doesn’t reach your pods:- Verify network connectivity from management cluster to tenant nodes
- Check that NodePort services are accessible
- Verify Envoy proxy is running and configured
