We are designing a new cluster architecture for our web service and are planing to use Ceph object storage and kubernetes for our services. for optimizing our servers We have different options:
Use identical servers and run Ceph and our services on all of them and manage with kubernetes
Like above use identical servers but label some of them for Ceph and don't run services on them
Use two types of servers: one optimized for io and one optimized for cpu. Then run Ceph on io ones and services on cpu ones. and manage all of them with kubernetes
Like above having two separated servers, but don't use kubernetes for io ones and let ceph handle everything (isn't it simpler to not use kubernetes for our Ceph cluster?)
I know identical servers have benefits of better scaling. On the other hand having two types of servers let us to optimize each of them. What is the best solution?