Kubernetes cluster architecture

10/30/2018

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

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

Thanks

-- Alex Tbk
cassandra
google-cloud-platform
kubernetes
kubernetes-cluster

1 Answer

10/30/2018

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:

Same cluster:

  • Pros
    • Workloads don't need to go to a different podCidr to get its data.
    • You can optimize your resources in the same set of servers.
      • This is one of the main reasons people use containers orchestrators and containers.
      • It allows you to run multiple different types of workloads on the same set of resources.
  • Cons
    • 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)
    • If you'd like to super isolate the db and app in terms of security, it may be harder.

Different clusters:

  • Pros

    • 'Safer' if one of your clusters goes down.
    • More separation in terms of security for your data at rest.
  • Cons

    • Resources may not be optimally utilized. Leaving some CPUs, memory, etc idle.
    • More infrastructure management.

Different node pools:

  • Pros
    • Separation of data at rest
    • Still going through the same PodCidr.
  • Cons
    • More management of different node pools.
    • Resources may not be optimally utilized.
-- Rico
Source: StackOverflow