Question: How do I create multiple node groups for Amazon EKS nodes using eksctl?

I want to create multiple node groups for Amazon Elastic Kubernetes Service (Amazon EKS) nodes using eksctl.

Short descriptionYou can create a node group using eksctl either with default parameters or with custom parameters using a configuration file for multiple node groups.

ResolutionCreate a node group with default parameters1.    Install eksctl.2.    To confirm that eksctl is configured and installed on the terminal with the correct permissions, run this command:$ eksctl version3.    To create an additional node group with default parameters, run this command:$ eksctl create nodegroup --cluster=yourClusterName --name=yourNodeGroupName --region yourRegionNameHere are the default parameters:Instance type = m5.largeAMI : lastest AWS EKS AMINodes-desired capacity = 2Nodes-min capacity =2 Nodes-max capacity=2Note: By default, new node groups inherit the version of Kubernetes installed from the control plane (–version=auto), but you can specify a different version of Kubernetes (for example, version=1.13). To use the latest version of Kubernetes, run the –version=latest command.4.    Open the AWS CloudFormation console and choose the stack associated with the node group that you created. Then, choose the Events tab to look for an AWS CloudFormation event showing that your stack is deployed.5.    To confirm that the new node groups are attached to the cluster and to verify that the node group configuration is applied, run these commands:$ Kubectl get nodes$ eksctl get nodegroups --cluster yourClusterNameCreate a node group with custom parameters1.    Define the parameters for the new node group in a configuration file. For example:kind: ClusterConfigapiVersion: eksctl.io/v1alpha5metadata:    name: yourClusterName    region: yourRegionNamenodeGroups:  - name: ng1-Workers    availabilityZones: ["az-name"]    desiredCapacity: 3    instanceType: m5.large    iam:      instanceProfileARN: "arn:aws:iam::11111:instance-profile/eks-nodes-base-role" #Attaching IAM role      instanceRoleARN: "arn:aws:iam::1111:role/eks-nodes-base-role"    privateNetworking: true    securityGroups:      withShared: true      withLocal: true      attachIDs: ['sg-11111', 'sg-11112']    ssh:      publicKeyName: 'my-instance-key'    kubeletExtraConfig:        kubeReserved:            cpu: "300m"            memory: "300Mi"            ephemeral-storage: "1Gi"        kubeReservedCgroup: "/kube-reserved"        systemReserved:            cpu: "300m"            memory: "300Mi"            ephemeral-storage: "1Gi"    tags:      'environment': 'development'  - name: ng-2-builders #example of a nodegroup that uses 50% spot instances and 50% on demand instances:    minSize: 2    maxSize: 5    instancesDistribution:      maxPrice: 0.017      instanceTypes: ["t3.small", "t3.medium"] # At least two instance types should be specified      onDemandBaseCapacity: 0      onDemandPercentageAboveBaseCapacity: 50      spotInstancePools: 2    tags:      'environment': 'production'2.    To create an additional node group using the configuration file, run this command:$ eksctl create nodegroup --config-file= yourConfigFileName3.    Open the AWS CloudFormation console, and then choose the stack associated with the node group that you created. Then, choose the Events tab to look for an AWS CloudFormation event showing that your stack is deployed.4.    To confirm that the new node groups are attached to the cluster and to verify that the node group configuration is applied, run these commands:$ kubectl get nodes$ eksctl get nodegroups --cluster yourClusterNameYou see that your nodes have joined the cluster. You can see that the two node groups are visible by using eksctl.