4

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?

Similarly, how does Kubernetes guarantee reliability of kubelet?

yuyang
  • 1,189
  • 1
  • 11
  • 31

1 Answers1

2

It guarantees their reliability by:

  • Having multiple nodes: If one kubelet crashes, one node goes down. Similarly, every node runs a kube-proxy instance, which means losing one node means losing the kube-proxy 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 kube-scheduler will distribute your workload across multiple nodes - which means your application will still be accessible.

  • Supporting a Highly-Available Setup: If you set up your Kubernetes cluster in High-Availability mode 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.

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.

Utku Özdemir
  • 6,390
  • 2
  • 44
  • 45
  • How about running stateful service on Kubernetes? If multiple `kubelet` crashes, there could be data loss due to limited # of replicas. – yuyang Jul 24 '19 at 14:39
  • @yuyang Managing stateful services is a complex problem to tackle in any kind of environment, and in Kubernetes it is no different. So, it cannot guarantee data consistency or no data loss - it just provides (as much as possible) the primitives/mechanisms to be able to build resilient stateful applications. But still, application developers play a big part on considering node/pod losses, trying to recover from different failure scenarios and so on. To read more about StatefulSets: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/ – Utku Özdemir Jul 24 '19 at 14:59