When trying to expose a pod or deployment with a LoadBalancer service object, you may find that you are out of IPs in your configured Metal LB range.
This would be indicated by log messages like these:
If you encounter this issue, your options are to use fewer IP addresses or configure your cluster to allocate more.
The easiest solution might be to evaluate whether your LoadBalancer services can instead be configured to use ClusterIP or NodePort service types instead.
Please see the Kubernetes documentation on service objects for more information:
https://kubernetes.io/docs/concepts/services-networking/service/
If you'd like to configure your cluster to allocate more addresses for Metal LB, you can edit your cluster.yaml to follow this example, using the addresses that are relevant for your environment:
Once you've made these changes, you can apply them with "./konvoy deploy addons".
This would be indicated by log messages like these:
Warning AllocationFailed service/myservice Failed to allocate IP for "mycluster/myservice": no available IPs
If you encounter this issue, your options are to use fewer IP addresses or configure your cluster to allocate more.
The easiest solution might be to evaluate whether your LoadBalancer services can instead be configured to use ClusterIP or NodePort service types instead.
Please see the Kubernetes documentation on service objects for more information:
https://kubernetes.io/docs/concepts/services-networking/service/
If you'd like to configure your cluster to allocate more addresses for Metal LB, you can edit your cluster.yaml to follow this example, using the addresses that are relevant for your environment:
- name: metallb enabled: true values: | configInline: address-pools: - name: default protocol: layer2 # configure addresses for your network addresses: - 10.5.136.241-10.5.136.250 - 192.168.1.1/24 - 172.16.75.1-172.16.75.200
Once you've made these changes, you can apply them with "./konvoy deploy addons".