File tree Expand file tree Collapse file tree 1 file changed +23
-0
lines changed
docs/baremetal/kubernetes Expand file tree Collapse file tree 1 file changed +23
-0
lines changed Original file line number Diff line number Diff line change 1
1
# 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.
You can’t perform that action at this time.
0 commit comments