Nodegroups
This chapter includes information about how you create and configure Nodegroups with Eksctl. Nodegroups are groups of EC2 instances attached to an EKS cluster.
Topics:
-
-
Create and manage EKS clusters with Spot instances using managed node groups
-
Configure Spot instances for unmanaged node groups using the MixedInstancesPolicy
-
Distinguish Spot and On-Demand instances using the
node-lifecycle
Kubernetes label
-
-
-
Enable automatic scaling of Kubernetes cluster nodes by creating a cluster or nodegroup with IAM role that allows the use of the cluster autoscaler
-
Configure nodegroup definitions to include necessary tags and annotations for the cluster autoscaler to scale the nodegroup
-
Create separate nodegroups for each availability zone if workloads have zone-specific requirements, such as zone-specific storage or affinity rules
-
-
-
Provision and manage EC2 instances (nodes) for Amazon EKS Kubernetes clusters
-
Easily apply bug fixes, security patches, and update nodes to the latest Kubernetes versions
-
-
-
Enable running on-premises and edge applications on customer-managed infrastructure with the same AWS EKS clusters, features, and tools used in the AWS Cloud
-
Configure networking to connect on-premises networks to an AWS VPC, using options like AWS Site-to-Site VPN or AWS Direct Connect
-
Set up credentials for remote nodes to authenticate with the EKS cluster, using either AWS Systems Manager (SSM) or AWS IAM Roles Anywhere
-
-
Support for Node Repair Config in EKS Managed Nodegroups
-
Enabling Node Repair for EKS Managed Nodegroups to automatically monitor and replace or reboot unhealthy worker nodes
-
-
-
Create an EKS cluster with ARM-based Graviton instances for improved performance and cost-efficiency
-
-
-
Apply taints to specific node groups in a Kubernetes cluster
-
Control scheduling and eviction of pods based on taint keys, values, and effects
-
-
Launch Template support for Managed Nodegroups
-
Launching managed node groups using a provided EC2 Launch Template
-
Upgrading a managed node group to use a different version of a Launch Template
-
Understanding limitations and considerations when using custom AMIs and Launch Templates with managed node groups
-
-
-
Enable SSH access to EC2 instances in the node group
-
Scale the number of nodes in a node group up or down
-
-
-
Extend an existing VPC with a new subnet and add a Nodegroup to that subnet
-
-
-
Understand the new node initialization process (nodeadm) introduced in AmazonLinux2023
-
Learn about the default NodeConfig settings applied by eksctl for self-managed and EKS-managed nodes
-
Customize the node bootstrapping process by providing an overrideBootstrapCommand with a custom NodeConfig
-
-
-
Create or update unmanaged node groups in an EKS cluster
-
Update default Kubernetes add-ons like kube-proxy, aws-node, and CoreDNS
-
-
-
Eksctl supports selecting GPU instance types for nodegroups, enabling the use of GPU-accelerated workloads on EKS clusters.
-
Eksctl automatically installs the NVIDIA Kubernetes device plugin when a GPU-enabled instance type is selected, facilitating the use of GPU resources in the cluster.
-
Users can disable automatic plugin installation and manually install a specific version of the NVIDIA Kubernetes device plugin using the provided commands.
-
-
-
Automatically generate a list of suitable EC2 instance types based on resource criteria like vCPUs, memory, GPUs, and CPU architecture
-
Create clusters and node groups with the instance types matched by the specified instance selector criteria
-
Perform a dry run to inspect and modify the instance types matched by the instance selector before creating a node group
-
-
-
Configure additional volume mappings for a managed node group in an EKS cluster
-
Customize volume properties like size, type, encryption, IOPS, and throughput for the additional volumes
-
Attach existing EBS snapshots as additional volumes to the node group
-
-
-
Add Windows node groups to an existing Linux Kubernetes cluster to enable running Windows workloads
-
Schedule workloads on the appropriate operating system (Windows or Linux) using node selectors based on the
kubernetes.io/os
andkubernetes.io/arch
labels
-
-
-
Use the
--node-ami
flag to specify a custom AMI for node groups, query AWS for the latest EKS-optimized AMI, or use AWS Systems Manager Parameter Store to find the AMI. -
Set the
--node-ami-family
flag to specify the operating system family for the node group AMI, such as AmazonLinux2, Ubuntu2204, or WindowsServer2022CoreContainer. -
For Windows node groups, specify a custom AMI and provide a PowerShell bootstrap script via the
overrideBootstrapCommand
.
-
-
-
Overwrite the DNS server IP address used for internal and external DNS lookups
-