<p>Does it make sense to create a separate <strong><em>Kubernetes</em></strong> cluster for my <em>Cassandra</em> instances and one cluster for the <em>application layer</em>? Is the DB cluster accessible from the service cluster when both are in the same region and zone?</p>

<p>Or is it better to have one cluster with different pools - one pool for the service layer and one pool the DB nodes? </p>

<p>Thanks</p>

<p>This is more of a toss-up or opinion in terms of how you want to design your whole architecture. Here are some things to consider:</p>

<p>Same cluster:</p>

<ul>
<li>Pros

<ul>
<li>Workloads don't need to go to a different podCidr to get its data.</li>
<li>You can optimize your resources in the same set of servers.

<ul>
<li>This is one of the main reasons people use containers orchestrators and containers.</li>
<li>It allows you to run multiple different types of workloads on the same set of resources.</li>
</ul></li>
</ul></li>
<li>Cons

<ul>
<li>If you have an issue with your cluster running Cassandra you risk losing your data. Or temporarily lose data if you have backups. (Longer downtime)</li>
<li>If you'd like to super isolate the db and app in terms of security, it may be harder.</li>
</ul></li>
</ul>

<p>Different clusters:</p>

<ul>
<li><p>Pros</p>

<ul>
<li>'Safer' if one of your clusters goes down.</li>
<li>More separation in terms of security for your data at rest.</li>
</ul></li>
<li><p>Cons</p>

<ul>
<li>Resources may not be optimally utilized. Leaving some CPUs, memory, etc idle.</li>
<li>More infrastructure management.</li>
</ul></li>
</ul>

<p>Different node pools:</p>

<ul>
<li>Pros

<ul>
<li>Separation of data at rest</li>
<li>Still going through the same PodCidr.</li>
</ul></li>
<li>Cons

<ul>
<li>More management of different node pools.</li>
<li>Resources may not be optimally utilized.</li>
</ul></li>
</ul>
