|
5 | 5 | [id="nw-metallb-software-components_{context}"]
|
6 | 6 | = MetalLB software components
|
7 | 7 |
|
8 |
| -When you install the MetalLB Operator, the `metallb-operator-controller-manager` deployment starts a pod. |
9 |
| -The pod is the implementation of the Operator. |
10 |
| -The pod monitors for changes to all the relevant resources. |
| 8 | +When you install the MetalLB Operator, the `metallb-operator-controller-manager` deployment starts a pod. The pod is the implementation of the Operator. The pod monitors for changes to all the relevant resources. |
11 | 9 |
|
12 | 10 | When the Operator starts an instance of MetalLB, it starts a `controller` deployment and a `speaker` daemon set.
|
13 | 11 |
|
14 | 12 | `controller`::
|
15 |
| -The Operator starts the deployment and a single pod. |
16 |
| -When you add a service of type `LoadBalancer`, Kubernetes uses the `controller` to allocate an IP address from an address pool. |
| 13 | +The Operator starts the deployment and a single pod. When you add a service of type `LoadBalancer`, Kubernetes uses the `controller` to allocate an IP address from an address pool. |
| 14 | +In case of a service failure, verify you have the following entry in your `controller` pod logs: |
| 15 | ++ |
| 16 | +.Example output |
| 17 | +[source,terminal] |
| 18 | +---- |
| 19 | +"event":"ipAllocated","ip":"172.22.0.201","msg":"IP address assigned by controller |
| 20 | +---- |
17 | 21 |
|
18 | 22 | `speaker`::
|
19 |
| -The Operator starts a daemon set for `speaker` pods. |
20 |
| -By default, a pod is started on each node in your cluster. |
21 |
| -You can limit the pods to specific nodes by specifying a node selector in the `MetalLB` custom resource when you start MetalLB. |
| 23 | +The Operator starts a daemon set for `speaker` pods. By default, a pod is started on each node in your cluster. You can limit the pods to specific nodes by specifying a node selector in the `MetalLB` custom resource when you start MetalLB. If the `controller` allocated the IP address to the service and service is still unavailable, read the `speaker` pod logs. If the `speaker` pod is unavailable, run the `oc describe pod -n` command. |
22 | 24 | +
|
23 | 25 | For layer 2 mode, after the `controller` allocates an IP address for the service, the `speaker` pods use an algorithm to determine which `speaker` pod on which node will announce the load balancer IP address.
|
24 |
| -The algorithm involves hashing the node name and the load balancer IP address. |
25 |
| -See the section about external traffic policy for more information. |
| 26 | +The algorithm involves hashing the node name and the load balancer IP address. For more information, see "MetalLB and external traffic policy". |
26 | 27 | // IETF treats protocol names as proper nouns.
|
27 | 28 | The `speaker` uses Address Resolution Protocol (ARP) to announce IPv4 addresses and Neighbor Discovery Protocol (NDP) to announce IPv6 addresses.
|
28 | 29 |
|
29 |
| -For BGP mode, after the `controller` allocates an IP address for the service, each `speaker` pod advertises the load balancer IP address with its BGP peers. |
30 |
| -You can configure which nodes start BGP sessions with BGP peers. |
| 30 | +For Border Gateway Protocol (BGP) mode, after the `controller` allocates an IP address for the service, each `speaker` pod advertises the load balancer IP address with its BGP peers. You can configure which nodes start BGP sessions with BGP peers. |
31 | 31 |
|
32 |
| -Requests for the load balancer IP address are routed to the node with the `speaker` that announces the IP address. |
33 |
| -After the node receives the packets, the service proxy routes the packets to an endpoint for the service. |
34 |
| -The endpoint can be on the same node in the optimal case, or it can be on another node. |
35 |
| -The service proxy chooses an endpoint each time a connection is established. |
| 32 | +Requests for the load balancer IP address are routed to the node with the `speaker` that announces the IP address. After the node receives the packets, the service proxy routes the packets to an endpoint for the service. The endpoint can be on the same node in the optimal case, or it can be on another node. The service proxy chooses an endpoint each time a connection is established. |
0 commit comments