Long.zhao
Long.zhao

Reputation: 1157

Why the EXTERNAL-IP in LoadBalancer Service is always pending?

I hava a custom Kubernetes Cluster(minikube) and have depleyed Metallb. When I create a LoadBalancer Service, the status is still pending.

Pods is below,

all pods

minikube ip is 192.168.99.103, metallb config file is below,

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: my-ip-space
      protocol: layer2
      addresses:
      - 192.168.99.100/28

and the service yaml is below,

apiVersion: v1
kind: Service
metadata:
  name: hello-world-web-lb
spec:
  type: LoadBalancer
  ports:
  - name: http
    port: 82
    targetPort: 8416
  selector:
    app: java

Upvotes: 3

Views: 1265

Answers (2)

Shashank V
Shashank V

Reputation: 11183

Minikube is a single VM test cluster. You need to use minikube service command to expose the service.

Assuming you are aim is to try metallb -

You need to provide address range as from-to syntax as follows for layer2.

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 192.168.1.240-192.168.1.250     ---> This line

Upvotes: 1

omricoco
omricoco

Reputation: 921

It's by design.

On cloud providers that support load balancers, an external IP address would be provisioned to access the Service. On Minikube, the LoadBalancer type makes the Service accessible through the minikube service command.

https://kubernetes.io/docs/tutorials/hello-minikube/#create-a-service

Upvotes: 0

Related Questions