Algumas coisas a considerar:
Se você estiver usando discos rotativos, convém ter discos separados para o Ceph e para tarefas aleatórias do Kubernetes. Dessa forma, a E / S aleatória das tarefas do kubernetes não quebra a sequencialidade dos acessos do Ceph (especialmente para gravações e leituras grandes). Obviamente, você pode conseguir isso com (2), (3) ou (4). Mas você também pode realizar isso com sua opção (1) se tiver vários discos em seus servidores (JBOD) e alocar cada disco para Ceph ou Kubernetes, mas não para ambos (ou se você usar uma unidade flash separada para Kubernetes, etc ..)
Se os seus servidores otimizados para CPU vierem com um grande disco de inicialização, você pode acabar se sentindo como se o armazenamento estivesse ocioso porque as tarefas de serviço não usam tudo, e mais tarde gostaria de poder executar o Ceph nesses nós também , para desarmar esse armazenamento. Mas se é um pequeno disco / ssd, então você pode não se importar.
Haverá alguma incerteza em quantos servidores você precisa. (por exemplo, crescimento, falhas, estimativas de carga imprecisas). Você tem que comprar demais por causa dessa incerteza. A overbuying é pior com 2 SKUs em vez de 1 SKU. E é mais difícil redirecionar os servidores mais tarde, à medida que suas necessidades mudam. Esse tipo de favorece (1) ou (2).
Do ponto de vista da segurança, talvez você se sinta mais confortável se a veiculação de tarefas não estiver na mesma máquina do armazenamento. Isso é mais importante se você tiver uma variedade de tarefas de serviço diferentes que são confiáveis em diferentes graus.
Não sei ao certo que tipo de "otimização" você deseja fazer com suas SKUs de servidor. Escolher SKUs que se encaixam exatamente em um pod não é uma boa prática. Você deve ter pods menores e confiar no agendador para o pacote de bin.