Engine pod is unable to communicate with the dind pod. EHOSTUNREACH error in logs
Overview
When running a build, or troubleshooting a runner connection issue, you will see the error message EHOSTUNREACH
in the engine logs while the build logs are stuck on validating connection to docker daemon
.
Details
One scenario where this situation can occur is when your Kubernetes cluster is configured to use the same CIDR block which is used internally by Docker. This CIDR block range, by default, is 172.17.0.0/16
. Using this CIDR block for both Docker as well as your Kubernetes cluster can cause a conflict. For Codefresh, this means that it’s likely that you will see that the dind pod is unreachable from the engine.
Resolution
You can resolve this issue by appending the following to the root level of the codefresh-dind-config
configmap which will modify /etc/docker/daemon.json
in the DinD pod to avoid this conflict.
"bip": "172.26.0.1/16"
Additional Information
If you’d like to read more on this topic, you can take a look at the following pages: