Skip to content

Commit febfbe7

Browse files
authored
Add metal-loadbalancer-controller documentation (#84)
1 parent 6c2128d commit febfbe7

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,24 @@
11
# Metal Loadbalancer Controller
2+
3+
The [metal-loadbalancer-controller](https://github.com/ironcore-dev/metal-load-balancer-controller) is responsible
4+
for managing the lifecycle of `Services` of type `LoadBalancer` in a Kubernetes cluster running on bare metal servers.
5+
The project consists of two main components:
6+
- **Controller**: The main component that watches for changes in `Service` resources and manages the lifecycle of load balancers.
7+
- **Speaker**: Is responsible for announcing the load balancer IP address to `metalbond` which acts as a route reflector
8+
to the bare metal servers.
9+
10+
The `metal-loadbalancer-controller` is designed to work in an IPv6 only environment.
11+
12+
## Controller
13+
14+
The controller component has the following responsibilities:
15+
- Watches for changes in `Service` resources of type `LoadBalancer` and uses the `ClusterIP` of a `Service` and patches the
16+
`LoadBalancer` status using this `ClusterIP`.
17+
- Setting the `PodCIDRs` on the `Node` resources to ensure that the load balancer can route traffic to the pods. Here it
18+
takes the main `Node` IP address and the configured `node-cidr-mask-size` and patches the `Node.spec.podCIDRs` field.
19+
20+
## Metalbond-Speaker
21+
22+
The speaker is typically deployed as a `DaemonSet` in a bare metal cluster. It is responsible for announcing
23+
the load balancer IP address to the `metalbond` service, which acts as a route reflector to the bare metal servers.
24+
The speaker can be configured to which `VNI` the load balancer IP address should be announced.

0 commit comments

Comments
 (0)