Looks like a very small POC cluster, you l’d probably need to make a guess without knowing additional details about data size, query concurrency requirements , ingestion troughput etc. There is a guide here :
https://druid.apache.org/docs/latest/operations/basic-cluster-tuning.html .
You may need to make some guesses for example if I had these constraints I’d start with requests of 2vCPU 6 GB for master, approx 4 vCPU 8 GB for query , and approx 5 vCPU 18 GB for data nodes . Note you may need to request milicpus slightly smaller than these numbers for data pods. Set only your max heap sizes based on the link above. For data nodes you may need to carv out some RAM for ingestion peons as well as direct memory buffers as well. The idea is to set max heap for everything without setting min heap then add the Prometheus emitter extension to be able to monitor your workload . Once you have this initial setup start running some ingestion and queries and monitor heap sizes for processes and iterate on fine adjustments from there.
For example you may see the master node does not need 6 GB , or you may see lots of GCs on your peons and peon heap fully utilized . That’s a sign you may want to reduce the resources on the master and give more to data nodes.
this may be quite time consuming, and depending on your workload may not be enough capacity for some of the processes . My recommendation would be to start with a more generous hardware setup and reduce from there based on utilization metrics. I would start with separate node pools for master , query and data nodes 4 vCPU 16 GB for master, 4 vCPU 8 GB for query and 8vCPU 32 GB for data. The are general purpose instances you should find in azure easily. Set affinity for your pods to make sure they end up on these node pools. Set only your max heap sizes and start ingestion querying management tasks etc . Monitor usage( memory, vCPU) . This would most likely be a stable system, look at under utilized heap sizes vCPU for pods etc , then start optimizing by setting limits on pods and lowering heap sizes and compare performance.
In the 25 release of Druid there is improved startup that could self configure druid processes based on resources available on the box:
https://github.com/apache/druid/pull/13365 but that’s for running all processes on one node. You may find it useful in dry run mode to guess some of the configs. I did not look deep enough to see if it takes vCPU into consideration but it may be worth also looking into.