Skip to content

Why is my LoadBalancer service stuck in Provisioning?

This document (000021961) is provided subject to the disclaimer at the end of this document.

Environment

A standalone or Rancher-managed Kubernetes cluster, with a Service of type Loadbalancer

Situation

When attempting to deploy a LoadBalancer service in a Rancher or Rancher-managed cluster, the service remains in a Pending or Provisioning state, with the following message:

Service is ready: LoadBalancer is being provisioned

Resolution

When deploying a LoadBalancer service, Kubernetes relies on an external controller to provision the external IP address. If such a controller is not present or is misconfigured, the service will remain in the Pending state indefinitely.

This commonly happens in the following scenarios:

1. Missing or misconfigured Cloud Provider Integration

In cloud environments (e.g., GCP, AWS, Azure), Kubernetes depends on a Cloud Controller Manager (CCM) to provision LoadBalancer services. If the CCM is not properly integrated or the cloud credentials lack the required permissions, provisioning will fail.

2. No External LB Controller on Bare Metal

On bare-metal clusters or self-hosted environments, the option of a Cloud Controller Manager with which to provision LoadBalancer services is absent. In these cases, you must manually install a LoadBalancer controller, such as MetalLB:

https://metallb.universe.tf/

Note: MetalLB is a third-party project. SUSE Rancher Support does not cover configuration or troubleshooting of third-party tools.

3. Insufficient Cloud IAM Permissions

Ensure that the cloud credentials used by the Cloud Controller Manager have sufficient privileges to create Load Balancers in the infrastructure provider (e.g., appropriate IAM roles or policies).

Tips for further investigation

To further investigate the issue, run the following commands:

```whitespace-pre! bash


kubectl get svc -n -o wide kubectl describe svc -n


```

Pay attention to the following fields in the output:

  • Events: Look for any warnings or errors related to provisioning

  • External IP: Should show an allocated IP once provisioning succeeds

  • Annotations: Review for any cloud-provider or controller-specific settings

Disclaimer

This Support Knowledgebase provides a valuable tool for SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented "AS IS" WITHOUT WARRANTY OF ANY KIND.