It is important to know the goals that you need to achieve by creating multiple node groups. Possible goals are
- physical app segregation by creating worker node group per application type (the one depicted in your diagram)
- Ensure high availability of worker nodes in case of AZ failure by creating minimal worker node groups
- Cost optimization by allowing multiple application co-exist in the same group of worker nodes
- Node groups to provide different memory to CPU ratio (compute and memory optimized worker node groups). High cpu intensive apps can be deployed on cpu optimized worker node group.
- Node groups based on reservation vs spot instances. Application which tolerate failures can be deployed on spot instances node group
Based on the goal, you need to design the node-group.
Additionally, you can consider EKS Fargate with well defined memory and cpu "requests".
It is difficult to recommend a best practice for how you isolate your applications and provision your node groups, without data about the nominal resource footprints of your applications, and the affect these applications have, under load, on your node, kubelets, and cluster API server. That said, application isolation to nodes is doable and may be recommended when the aggregate collection of applications, running on the same nodes, causes your nodes to thrash, kubelets to load the API server with queries, and evict or constantly autoscale pods and nodes. Node isolation is generally used for multi-tenancy and data classification isolation (PCI, etc.). For data classification, cluster isolation, network segmentation, and even account isolation is also used.
All that said, isolating to node groups is not the only way. You may want to look into Karpenter. I have included some links below:
If you do decide to isolate applications to specific nodes or node groups, then I would also recommend this EKS Best Practices Guide document on multi-tenant isolation with Policy-as-Code for mutation and validation.
EKS Node Group Strategyasked 18 days ago
EKS can't scale Managed Node Group from 0asked 5 months ago
EKS Node selector - possible labelsAccepted AnswerEXPERTasked 10 months ago
How to create EKS cluster with dedicated host node groupAccepted Answerasked 10 months ago
Give cluster admin access to EKS worker nodes.asked 21 days ago
coredns remains Degraded after EKS cluster creationasked 2 months ago
How to remove a specific node from EKS node group (none managed eksctl)Accepted Answerasked 2 months ago
EKS Node Group with RIAccepted AnswerEXPERTasked 2 years ago
EKS static IPs for managed node group nodesAccepted Answerasked 2 years ago
EKS Managed Node Groups - PodEvicitionFailureasked 3 years ago