Batch pool nodes confusion

Category: azure batch

Question

Koushik984 on Wed, 06 Jun 2018 12:28:33


Hi,

I am trying to understand the allocation of the tasks on the nodes and spinning up the VM. I picked up sample formulas from the MSFT docs, 

Here it is:

startingNumberOfVMs = 1;

maxNumberofVMs = 25;

pendingTaskSamplePercent = $PendingTasks.GetSamplePercent(180 * TimeInterval_Second); pendingTaskSamples = pendingTaskSamplePercent < 70 ? startingNumberOfVMs : avg($PendingTasks.GetSample(180 * TimeInterval_Second));

$totalDedicatedNodes = (min($CPUPercent.GetSample(TimeInterval_Minute * 10)) > 0.7) ? ($CurrentDedicatedNodes * 1.1) : $CurrentDedicatedNodes;

$totalDedicatedNodes = (avg($CPUPercent.GetSample(TimeInterval_Minute * 15)) < 0.2) ? ($CurrentDedicatedNodes * 0.9) : $totalDedicatedNodes;

$TargetDedicatedNodes=min(maxNumberofVMs, pendingTaskSamples); 


When executing a model, Batch invokes the nodes, until here it is clear. 

When the nodes are live & running the tasks, inorder to connect to the nodes I notice that all nodes are having the same IP address to my surprise. (40.118.6.21:3389)

Can anyone explain the background of it?

Regards



Koushik

Replies

Micah McKittrick on Wed, 06 Jun 2018 20:18:10


The nodes in the pool do not actually have the same IP address. Rather there is a Load Balancer on the backend that is taking the RDP request and forwarding it to the correct node. 

So rather when you go to connect you will get the IP of the load balancer and then the port assigned will be different for each node. 

Such as 10.0.0.1:5001 for Node1 and 10.0.0.1:5002 for Node2. 

Azure Batch just handles the traffic for you which is why you do not see specifically the private IP address of the batch node.