<p>As I have been using kubernetes more I keep on seeing the reference that a pod can contain 1 container or more and I have even looked at examples.</p>

<p>My question is whether there is a case where this would be best practice and more efficient to create multi container pods since you can scale and replicate your pods coupling it with a service. </p>

<p>Thanks in advance </p>

<p>A Pod can contain multiple containers, but for the most portion of the situations, it makes perfect sense for the Pod to be simply an abstraction over a single running container. </p>

<p><strong>In what situations does it make sense to have a multi-container deployed Pod?</strong></p>

<p>What comes to my mind are the scenarios where you have a primary Pod running, but you need to tightly couple helper processes, such as a log watcher. In those situations, it makes perfect sense to actually have multiple containers running inside a single pod.</p>

<p>Another big example that comes to my mind is from the <a href="https://istio.io/" rel="nofollow noreferrer">Istio</a> project, which is a platform made to connect, manage and secure microservices and is generally referred as a Service Mesh. </p>

<p>A huge part of what it does and is able to accomplish to provide a greater control and customization over the deployed microservices network, is due to the fact that it deploys a sidecar proxy, denominated Envoy, throughout the environment intercepting all network communication between microservices.</p>

<p><a href="https://istio.io/docs/concepts/traffic-management/load-balancing.html" rel="nofollow noreferrer">Here</a>, you can check an example of load balancing in a Istio service mesh. As you can see the Proxy is deployed inside the Pod, intercepting all communication that goes through it. </p>
