Configure node selector for MetalLB speaker¶
By default, MetalLB speakers are deployed on all Kubernetes nodes. You can configure MetalLB to run its speakers on a particular set of nodes. This decreases the number of nodes that should be connected to external network. In this scenario, only a few nodes are exposed for ingress traffic from the outside world.
To customize the MetalLB speaker node selector:
kubeconfigof the management cluster, open the
Clusterobject of the managed cluster for editing:
kubectl --kubeconfig <pathToManagementClusterKubeconfig> -n <TargetClusterProjectName> edit cluster <TargetClusterName>
spec:providerSpec:value:helmReleasessection, add the
spec: ... providerSpec: value: ... helmReleases: - name: metallb values: ... speaker: nodeSelector: metallbSpeakerEnabled: "true"
metallbSpeakerEnabled: "true"parameter in this example is the label on Kubernetes nodes where MetalLB speakers will be deployed. It can be an already existing node label or a new one.
You can add user-defined labels to nodes using the
List of node labels to be attached to a node for the user to run certain components on separate cluster nodes. The list of allowed node labels is located in the
valuefield is not defined in
allowedNodeLabels, a label can have any value.
Before or after a machine deployment, add the required label from the allowed node labels list with the corresponding value to
machine.yaml. For example:
nodeLabels: - key: stacklight value: enabled
The addition of a node label that is not available in the list of allowed node labels is restricted.