<p>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.</p>

<p>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.</p>

<p>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.</p>

<blockquote>
  <p>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?</p>
</blockquote>

<p>Yes, this is currently true. We are working on relaxing this restriction, but in the mean time you can <a href="https://stackoverflow.com/questions/31302233/resize-instance-types-on-container-engine-cluster/31303169#31303169">copy the instance template</a> to create another set of nodes with a different size. </p>
