<p>I had deploy a stateless Go web app with Redis on Kubernetes. Redis pod is running fine but the main issue with application pod and getting error <strong>dial tcp: i/o timeout</strong> in log. Thank you!!</p>

<p><a href="https://i.stack.imgur.com/e9hgM.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/e9hgM.png" alt="enter image description here"></a></p>

shivam
<p>Please take look: <a href="https://stackoverflow.com/questions/57866030/azure-kubernetes-how-can-i-deal-with-error-dial-tcp-10-240-0-410250-i-o-time">aks-vm-timeout</a>.</p>

<blockquote>
  <p>Make sure that the default network security group isn't modified and that both port 22 and 9000 are open for connection to the API server. Check whether the tunnelfront pod is running in the kube-system namespace using the kubectl get pods --namespace kube-system command.
  If it isn't, force deletion of the pod and it will restart.</p>
</blockquote>

<p>Also make sure if Redis port is open.</p>

<p>More info about troubleshooting: <a href="https://learn.microsoft.com/en-us/azure/aks/troubleshooting#i-cant-get-logs-by-using-kubectl-logs-or-i-cant-connect-to-the-api-server-im-getting-error-from-server-error-dialing-backend-dial-tcp-what-should-i-do" rel="nofollow noreferrer">dial-backend-troubleshooting</a>.</p>

<p><strong>EDIT:</strong></p>

<p>Answering on your question about tunnelfront:</p>

<p><code>tunnelfront</code> is an AKS system component that's installed on every cluster that helps to facilitate secure communication from your hosted Kubernetes control plane and your nodes. It's needed for certain operations like kubectl exec, and will be redeployed to your cluster on version upgrades.</p>

<p>Speaking about VM:</p>

<p>I would SSH into the it and start watching the disk IO latency using bpf / bcc tools and the docker / kubelet logs. </p>
