Skip to content

MetalLB IP address allocation strategy

In the context of setting up a Kubernetes cluster with KinD (Kubernetes in Docker) and MetalLB, IP address allocation is determined by the Docker network subnet and specific configuration parameters.^[400-devops__07-Monitoring-and-Observability__k8s-istio__samples__kind-lb__README.md]

Address Calculation

The strategy relies on a four-octet IPv4 structure to generate addresses for LoadBalancer type resources^[400-devops__07-Monitoring-and-Observability__k8s-istio__samples__kind-lb__README.md].

  • 1st & 2nd Octets: Automatically determined by the Docker network subnet created by KinD.^[400-devops__07-Monitoring-and-Observability__k8s-istio__samples__kind-lb__README.md]
  • 3rd Octet: Defined by the user via the --ip-octet (or -s) parameter during cluster setup^[400-devops__07-Monitoring-and-Observability__k8s-istio__samples__kind-lb__README.md]. The default value is 255^[400-devops__07-Monitoring-and-Observability__k8s-istio__samples__kind-lb__README.md].
  • 4th Octet: Hardcoded to the range of 200-240^[400-devops__07-Monitoring-and-Observability__k8s-istio__samples__kind-lb__README.md].

This configuration results in a usable pool of 40 distinct public IP addresses per cluster^[400-devops__07-Monitoring-and-Observability__k8s-istio__samples__kind-lb__README.md].

Multi-Cluster Management

When running a single cluster, the ip-octet parameter is optional^[400-devops__07-Monitoring-and-Observability__k8s-istio__samples__kind-lb__README.md]. However, when provisioning multiple Kubernetes clusters, it is critical to assign a unique ip-octet value to each cluster^[400-devops__07-Monitoring-and-Observability__k8s-istio__samples__kind-lb__README.md]. This prevents IP address overlapping across the different instances^[400-devops__07-Monitoring-and-Observability__k8s-istio__samples__kind-lb__README.md].

For example, cluster1 might use --ip-octet 255 while cluster2 uses --ip-octet 245^[400-devops__07-Monitoring-and-Observability__k8s-istio__samples__kind-lb__README.md].

  • [[KinD]]
  • [[Load Balancer]]
  • [[Docker Networking]]

Sources

^[400-devops__07-Monitoring-and-Observability__k8s-istio__samples__kind-lb__README.md]