<p>I just learned about ReplicaSets and Services in Kubernetes. I know the concept of desired state in ReplicaSets, it means that if one of our pods goes down, it will be rescheduled to keep the number of replicas as desired.</p>

<p>But what happens if a Service goes down/fails? Is there any recovery for that?</p>

<blockquote>
  <p>A Kubernetes Service is an abstraction which defines a logical set of Pods and a policy by which to access them - sometimes called a micro-service. The set of Pods targeted by a Service is (usually) determined by a Label Selector (see below for why you might want a Service without a selector). <a href="https://kubernetes.io/docs/concepts/services-networking/service/" rel="nofollow noreferrer">service</a></p>
</blockquote>

<p>k8s service is a <strong>abstract idea</strong>  it does not consume any cpu/memory as <strong>pod</strong> does, so it does not make sense if it goes down. If you delete it then its deleted, there is no concrete object which is active. </p>

<p>one of the functionally is to provide static IP (cluster IP) and DNS record  so other pods can communicate with it, inter cluster communication. <a href="https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#a-records" rel="nofollow noreferrer">DNS record</a>    </p>

<p>One of the main responsibilities of kube-proxy is to write the iptables rules which implement Services. Nodes are having same iptables rules which are synchronized by kube-proxy.</p>
