Hello @Vignesh Murugan ,
Thank you for reaching out to the Microsoft Q&A platform. Happy to answer your question. Your understanding is correct for system mode and user mode nodepools.
Differences discussed here Use system node pools in Azure Kubernetes Service (AKS) - Azure Kubernetes Service | Microsoft Learn
While I don’t have clear explaination on what dictactes scheduling preferences of pods in AKS for the two nodepools. Users can explicitly make system nodepools dedicated for system pods with this –
On System nodepool, AKS automatically assigns the label kubernetes.azure.com/mode: system to its nodes. This causes AKS to prefer scheduling system pods on node pools that contain this label. This label does not prevent you from scheduling application pods on system node pools. However, we recommend you isolate critical system pods from your application pods to prevent misconfigured or rogue application pods from accidentally killing system pods. You can enforce this behavior by creating a dedicated system node pool. Use the CriticalAddonsOnly=true:NoSchedule taint to prevent application pods from being scheduled on system node pools.
You can explicitly deploy a Pod to a specific node pool by setting any of the below:
This forces a Pod to run only on nodes in that node pool. For more example see, Deploying a Pod to a specific node pool
Please "Accept as Answer" and Upvote if the answer provided is useful, so that you can help others in the community looking for remediation for similar issues.