<p>I have a service that, in some contexts, sends requests to itself.
I can reach the service from outside the cluster, but the self-requests fail (time-out).</p>

<p>Environment: </p>

<ul>
<li>minikube v0.34.1</li>
<li>Linux version 4.15.0 (jenkins@jenkins) (gcc version 7.3.0 (Buildroot 2018.05)) #1 SMP Fri Feb 15 19:27:06 UTC 2019</li>
</ul>

<p>I've been using <a href="https://kubernetes.io/docs/tasks/debug-application-cluster/debug-service/#a-pod-cannot-reach-itself-via-service-ip" rel="nofollow noreferrer">https://kubernetes.io/docs/tasks/debug-application-cluster/debug-service/#a-pod-cannot-reach-itself-via-service-ip</a> as a troubleshooting guide, but I'm down the step that says "seek help".</p>

<p>Troubleshooting results:</p>

<pre><code>journalctl -u kubelet | grep -i hairpin  
Feb 26 19:57:10 minikube kubelet[3066]: W0226 19:57:10.124151    3066 docker_service.go:540] Hairpin mode set to "promiscuous-bridge" but kubenet is not enabled, falling back to "hairpin-veth"  
Feb 26 19:57:10 minikube kubelet[3066]: I0226 19:57:10.124295    3066 docker_service.go:236] Hairpin mode set to "hairpin-veth" 
</code></pre>

<p>The troubleshooting guide indicates that "hairpin-veth" is OK.</p>

<pre><code>for intf in /sys/devices/virtual/net/docker0/brif/veth*; do cat $intf/hairpin_mode; done
0
...
0
</code></pre>

<p>Note that the guide used <code>/sys/devices/virtual/net/cbr0/brif/*</code>, but in this version of minikube, the path is <code>/sys/devices/virtual/net/docker0/brif/veth*</code>.  I'd like to understand why the paths are different, but it appears that hairpin_mode is not enabled.</p>

<p>The next step in the guide is: <code>Seek help if none of above works out.</code></p>

<ol>
<li>Am I correct in believing that I need to enable hairpin_mode?</li>
<li>If so, how do I do so?</li>
</ol>

David Pennell
<p>It seems like known issue, more information <a href="https://github.com/kubernetes/minikube/issues/1568" rel="nofollow noreferrer">here</a>: </p>

<p>As workaround you can try:</p>

<pre><code>minikube ssh -- sudo ip link set docker0 promisc on
</code></pre>

<p>Please share with the reulsts.</p>
