<p>I have read a lot of kubernetes documents but couldn't get a answer. In kubernetes architecture the basic component is a pod. Why did it make an abstraction layer over container to create a pod and manage it rather than managing the container directly. What are the main advantages kubernetes gets by managing pod rather than an container. </p>

<p>what is the task of the wrapper over the container ?</p>

<p>I think in officail documentation <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-overview/#understanding-pods" rel="nofollow noreferrer">Understanding pod</a> have a nice description about</p>
<blockquote>
<p>Pods in a Kubernetes cluster can be used in two main ways:</p>
<p><strong>Pods that run a single container</strong>. The “one-container-per-Pod” model is the most common Kubernetes use case; in this case, you can think of a Pod as a wrapper around a single container, and Kubernetes manages the Pods rather than the containers directly.</p>
<p><strong>Pods that run multiple containers that need to work together</strong>. A Pod might encapsulate an application composed of multiple co-located containers that are tightly coupled and need to share resources. These co-located containers might form a single cohesive unit of service–one container serving files from a shared volume to the public, while a separate “sidecar” container refreshes or updates those files. The Pod wraps these containers and storage resources together as a single manageable entity.</p>
</blockquote>
<p>If you think of <strong>Pods that run a single container</strong> then  you might think maintaining container is more reasoning, but in second case <strong>Pods that run multiple containers that need to work together</strong> might face more complexity</p>
