Search code examples
minikubemetallb

Minikube MetalLb addon Imagepullbackoff


I am trying to enable the metallb addon but I keep getting Imagepullbackoff errors.
Output of kubectl describe pod controller_pod

Name:             controller-644c846477-pkvb7
Namespace:        metallb-system
Priority:         0
Service Account:  controller
Node:             minikube/192.168.49.2
Start Time:       Sat, 25 Mar 2023 11:27:29 +0000
Labels:           app=metallb
                  component=controller
                  pod-template-hash=644c846477
Annotations:      prometheus.io/port: 7472
                  prometheus.io/scrape: true
Status:           Pending
IP:               10.244.0.31
IPs:
  IP:           10.244.0.31
Controlled By:  ReplicaSet/controller-644c846477
Containers:
  controller:
    Container ID:  
    Image:         docker.io/metallb/controller:v0.9.6@sha256:fbfdb9d3f55976b0ee38f3309d83a4ca703efcf15d6ca7889cd8189142286502
    Image ID:      
    Port:          7472/TCP
    Host Port:     0/TCP
    Args:
      --port=7472
      --config=config
    State:          Waiting
      Reason:       ImagePullBackOff
    Ready:          False
    Restart Count:  0
    Limits:
      cpu:     100m
      memory:  100Mi
    Requests:
      cpu:        100m
      memory:     100Mi
    Environment:  <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-q88bm (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             False 
  ContainersReady   False 
  PodScheduled      True 
Volumes:
  kube-api-access-q88bm:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   Guaranteed
Node-Selectors:              kubernetes.io/os=linux
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason     Age                   From               Message
  ----     ------     ----                  ----               -------
  Normal   Scheduled  17m                   default-scheduler  Successfully assigned metallb-system/controller-644c846477-pkvb7 to minikube
  Normal   Pulling    15m (x4 over 17m)     kubelet            Pulling image "docker.io/metallb/controller:v0.9.6@sha256:fbfdb9d3f55976b0ee38f3309d83a4ca703efcf15d6ca7889cd8189142286502"
  Warning  Failed     15m (x4 over 17m)     kubelet            Failed to pull image "docker.io/metallb/controller:v0.9.6@sha256:fbfdb9d3f55976b0ee38f3309d83a4ca703efcf15d6ca7889cd8189142286502": rpc error: code = Unknown desc = Error response from daemon: pull access denied for metallb/controller, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
  Warning  Failed     15m (x4 over 17m)     kubelet            Error: ErrImagePull
  Warning  Failed     15m (x6 over 17m)     kubelet            Error: ImagePullBackOff
  Normal   BackOff    2m15s (x65 over 17m)  kubelet            Back-off pulling image "docker.io/metallb/controller:v0.9.6@sha256:fbfdb9d3f55976b0ee38f3309d83a4ca703efcf15d6ca7889cd8189142286502"

I have tried running eval $(minikube -p myprofile docker-env) and pulling the images themselves but to no avail.
docker.io/metallb/speaker:v0.9.6
docker.io/metallb/controller:v0.9.6


Solution

  • As of right now there is a fix for this issue in minikube that hasn't been introduced into a new release yet.

    To use metallb build minikube from the main branch of the minikube github Follow this guide to make the new minikube build.

    You should be able to enable the addon now.