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-octetparameter^[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
100and255^[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]