Kubernetes node capacity planning for various pod requirements in GKE

12/21/2015

I am trying to deploy a web application using Kubernetes and google container engine. My application requires different types of machine. In my understanding, in GKE, I can only have single type (instance template) of machines in each cluster, and it reduces to wasting resource or money to mix different pods in single cluster because I need to match machine type with maximum requirement.

Let's say database requires 8 CPUs and 100GB ram, and application servers needs 2 CPUs and 4GB ram. I have to have at least 8 cpu / 100GB machine in the cluster for database pods to be scheduled. Kubernetes will schedule 4 application pods on each machine, and it will waste 84GB of ram of the machine.

Is it correct? If it is, how can I solve the problem? Do I need to run separate clusters for different requirement? Connecting services between different clusters doesn't seem to be s trivial problem either.

-- essis
google-kubernetes-engine
kubernetes

2 Answers

3/19/2016

Google appears to be working on this:

Added node pool support to enable heterogeneous clusters (alpha).

This is from recent release notes of the gcloud sdk.

-- dcgoss
Source: StackOverflow

12/22/2015

In my understanding, in GKE, I can only have single type (instance template) of machines in each cluster.... Do I need to run separate clusters for different requirement?

Yes, this is currently true. We are working on relaxing this restriction, but in the mean time you can copy the instance template to create another set of nodes with a different size.

-- Robert Bailey
Source: StackOverflow