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.