Skip to content

Instantly share code, notes, and snippets.

@mranv
Created April 3, 2025 17:58
Show Gist options
  • Save mranv/9df5b5926b328cfbc18ea71e8e7b786e to your computer and use it in GitHub Desktop.
Save mranv/9df5b5926b328cfbc18ea71e8e7b786e to your computer and use it in GitHub Desktop.

The errors you're encountering are primarily related to network issues that prevent your Kubernetes pods from pulling Docker images. The ImagePullBackOff error indicates that Kubernetes is repeatedly trying and failing to download the required container images (wazuh/wazuh-dashboard:4.7.5 and busybox). The root cause seems to be a network connectivity issue, as indicated by the dial tcp i/o timeout and request canceled while waiting for connection messages.

Here’s a step-by-step guide to troubleshoot and potentially fix these issues:

1. Check Network Connectivity

Ensure that your Minikube node has proper internet connectivity. You can verify this by running:

kubectl exec -it <pod_name> -- curl -I https://registry-1.docker.io/v2/

This command attempts to reach Docker Hub from inside one of your running pods (if any). If it fails, you likely have a network issue.

2. Restart Minikube

Sometimes, restarting Minikube can resolve transient network issues:

minikube stop
minikube start

3. Ensure DNS Resolution

Make sure that the DNS resolution inside your Minikube cluster is functioning correctly. You can test DNS resolution within a pod:

kubectl exec -it <pod_name> -- nslookup google.com

If DNS resolution fails, you might need to check Minikube's DNS settings or consider restarting the kube-dns service.

4. Increase Timeout Limits

If the issue is intermittent, you can try increasing the timeout settings to give the pod more time to pull the image:

minikube config set wait-timeout 10m

5. Pull the Image Manually

You can manually pull the required images on your Minikube node to check for any specific issues:

minikube ssh
sudo docker pull wazuh/wazuh-dashboard:4.7.5
sudo docker pull busybox

6. Set ImagePullPolicy to IfNotPresent

Modify your deployment YAML to set imagePullPolicy: IfNotPresent for the containers, so Kubernetes doesn't attempt to pull the image if it’s already available on the node:

imagePullPolicy: IfNotPresent

7. Check Docker Hub Rate Limits

Ensure you're not hitting Docker Hub rate limits. If you’re using Docker Hub anonymously, consider configuring Docker credentials in Kubernetes:

kubectl create secret docker-registry regcred --docker-server=https://index.docker.io/v1/ --docker-username=<your-username> --docker-password=<your-password> --docker-email=<your-email>

Update your deployment to use this secret.

8. Verify Persistent Volume Claims

The wazuh-indexer pod is also facing an issue with unbound PersistentVolumeClaims. Ensure that the PersistentVolume is correctly configured and bound to the claim.

9. Recheck Resource Limits

Ensure your Minikube instance has sufficient resources (CPU and memory). Consider increasing resources if needed:

minikube config set memory 4096
minikube config set cpus 2

After applying these steps, redeploy your Wazuh components and check if the issues are resolved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment