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
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.