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:
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.
Sometimes, restarting Minikube can resolve transient network issues:
minikube stop
minikube start
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.
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
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
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
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.
The wazuh-indexer
pod is also facing an issue with unbound PersistentVolumeClaims. Ensure that the PersistentVolume is correctly configured and bound to the claim.
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.
The issue you're facing, particularly the
ImagePullBackOff
andPending
statuses, indicates that the pods are unable to start due to issues with pulling the required Docker images or due to insufficient resources.Troubleshooting Steps
Check Image Availability:
kubectl describe pod <pod-name> -n wazuh
for each pod inImagePullBackOff
to get detailed error messages. This will help determine if the image is missing, there are authentication issues, or if there’s a network problem.Verify Kubernetes Resources:
Check Storage Issues:
Pending
status onwazuh-manager-master
andwazuh-manager-worker
could be due to storage provisioning issues. Ensure that your storage class (wazuh-storage
) is correctly configured and available.Reapply the Deployment:
Check Docker Image Tags:
latest
can be unreliable if there’s a mismatch in versions.Minikube Registry Access:
Network Issues:
After performing these steps, try deploying again and monitor the status of the pods using
kubectl get pods -n wazuh
.