<p>If Kube proxy is down, the pods on a kubernetes node will not be able to communicate with the external world. Anything that Kubernetes does specially to guarantee the reliability of kube-proxy? </p>

<p>Similarly, how does Kubernetes guarantee reliability of kubelet? </p>

<p>It guarantees their reliability by:</p>

<ul>
<li><p><strong>Having multiple nodes:</strong> If one <code>kubelet</code> crashes, one node goes down. Similarly, every node runs a <code>kube-proxy</code> instance, which means losing one node means losing the <code>kube-proxy</code> instance on that node. Kubernetes is designed to handle node failures. And if you designed your app that is running on Kubernetes to be scalable, you will not be running it as single instance but rather as multiple instances - and <code>kube-scheduler</code> will distribute your workload across multiple nodes - which means your application will still be accessible.</p></li>
<li><p><strong>Supporting a Highly-Available Setup:</strong> If you set up your Kubernetes cluster in <a href="https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/" rel="nofollow noreferrer">High-Availability mode</a> properly, there won't be one master node, but multiple. This means, you can even tolerate losing some master nodes. The managed Kubernetes offerings of the cloud providers are always highly-available.</p></li>
</ul>

<p>These are the first 2 things that come to my mind. However, this is a broad question, so I can go into details if you elaborate what you mean by "reliability" a bit. </p>
