aws
- Watching for pods that the Kubernetes scheduler has marked as unschedulable
- Evaluating scheduling constraints (resource requests, nodeselectors, affinities, tolerations, and topology spread constraints) requested by the pods
- Provisioning nodes that meet the requirements of the pods
- Scheduling the pods to run on the new nodes
- Removing the nodes when the nodes are no longer needed
Karpenter
Improve application availability Karpenter responds quickly and automatically to changes in application load, scheduling, and resource requirements, placing new workloads onto a variety of available compute resource capacity. Minimize operational overhead Karpenter comes with a set of opinionated defaults in a single, declarative Provisioner resource which can easily be customized.
https://karpenter.sh/

Getting Started with Karpenter on AWS
Karpenter automatically provisions new nodes in response to unschedulable pods. Karpenter does this by observing events within the Kubernetes cluster, and then sending commands to the underlying cloud provider. In this example, the cluster is running on Amazon Web Services (AWS) Elastic Kubernetes Service (EKS).
https://karpenter.sh/docs/getting-started/


Seonglae Cho