Skip to content

MetalLB IP address allocation in KinD

When configuring [[MetalLB]] within a Kubernetes in Docker (KinD) cluster, the allocation of public IP addresses is determined by the Docker network's subnet configuration.^[400-devops-07-monitoring-and-observability-k8s-istio-samples-kind-lb-readme.md] The setup requires manual specification of the IP address range to prevent conflicts, particularly when running multiple clusters.^[400-devops-07-monitoring-and-observability-k8s-istio-samples-kind-lb-readme.md]

IP Address Structure

The public IPv4 addresses allocated by MetalLB follow a specific four-octet structure derived from the Docker network and user configuration^[400-devops-07-monitoring-and-observability-k8s-istio-samples-kind-lb-readme.md]:

  • 1st & 2nd Octets: Determined automatically by the Docker network subnet created by KinD^[400-devops-07-monitoring-and-observability-k8s-istio-samples-kind-lb-readme.md].
  • 3rd Octet: Configurable via the ip-octet parameter^[400-devops-07-monitoring-and-observability-k8s-istio-samples-kind-lb-readme.md].
  • 4th Octet: Hardcoded to the range 200-240^[400-devops-07-monitoring-and-observability-k8s-istio-samples-kind-lb-readme.md].

Consequently, a single KinD cluster supports a maximum of 40 public IP addresses for load balancer resources^[400-devops-07-monitoring-and-observability-k8s-istio-samples-kind-lb-readme.md].

Configuration Parameters

The primary mechanism for controlling this allocation is the --ip-octet (or -s) flag provided during cluster setup^[400-devops-07-monitoring-and-observability-k8s-istio-samples-kind-lb-readme.md].

  • Default Value: If omitted, the value defaults to 255^[400-devops-07-monitoring-and-observability-k8s-istio-samples-kind-lb-readme.md].
  • Valid Range: The parameter accepts a value between 100 and 255^[400-devops-07-monitoring-and-observability-k8s-istio-samples-kind-lb-readme.md].

Multi-Cluster Management

When deploying multiple KinD clusters on the same host, it is critical to assign a unique ip-octet to each cluster to avoid overlapping IP address ranges^[400-devops-07-monitoring-and-observability-k8s-istio-samples-kind-lb-readme.md]. For example, an administrator might assign octet 255 to cluster1 and 245 to cluster2 to ensure distinct address pools^[400-devops-07-monitoring-and-observability-k8s-istio-samples-kind-lb-readme.md].

Sources

^[400-devops-07-monitoring-and-observability-k8s-istio-samples-kind-lb-readme.md]