<p>We have deployed an app with front end and backend service. It is deployed on kubernetes on AWS. Both services are deployed on a single node.<br />
Today it went down, because of an issue with the node.</p>
<p>To avoid such failure in future, the proposed solution is to create 3 nodes in 3 different availability zones.  We will create 3 replica pods for both front end and backend services.  Each node will host one pair of front and backend. This way if node in one az goes down, we will still have 2 more nodes in other zones.</p>
<p>Should we move ahead with this approach , or there is a better solution ?</p>
<p>PS (A major requirement for the solution is that , it should not cost too much)</p>

Dawood Abbas 
<p>Your solution for the problem is following the best practice. Here are a few which I wanted to highlight.</p>
<p><strong>1:</strong> you may want to avoid running two pods on the same node refer <a href="https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/" rel="nofollow noreferrer">Advanced scheduling</a>.</p>
<p><strong>2:</strong> <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/" rel="nofollow noreferrer">Use Pod Topology Spread Constraints</a>.</p>
<hr />
<p>Highly recommended</p>
<ul>
<li><a href="https://stackoverflow.com/a/49347088/3098330">Avoiding all pods in a single node of Kubernetes cluster</a></li>
</ul>
