Scaling Kubernetes nodes
(efficiently) has always been difficult, Today we are announcing a new integration with Spotinst’s Cluster Autoscaler which will allow our customers to scale Kubernetes workloads economically based on Spot prices and trends based on aggregated node utilization.
What is Spotinst Kubernetes Cluster AutoScaler
Cluster AutoScaler is an intelligent containerized cluster autoscaler that enables users to automatically scale clusters up and down so that all scheduled pods will have enough resources. If the cluster doesn’t have enough capacity, a new node answering the deployments requests is added and underutilization is handled by proactively defragmenting the cluster. If all pods are removed from a node, the node enters an unutilized state and will be terminated.
How Cluster AutoScaler works
Spotinst Cluster AutoScaler periodically checks whether there are pods waiting for assignment and if there is enough capacity to schedule the pods. If there isn’t enough capacity, a scale up event will be triggered.
Spotinst Cluster AutoScaler monitors the usage of all nodes. If a node is not needed for an extended period and is not highly utilized, the pods will be scheduled to a new node and the original node will be terminated.
The user has the ability to set the minimum and maximum allowed nodes so the number of running nodes will always be in that specified range.
Please consider: All replicated pod services should have the ability to tolerate moving between nodes and brief disruption.
The Autoscaler provides the option to include a buffer of spare capacity known as headroom. Headroom ensures that the cluster has the capacity to quickly scale more Pods without waiting for new nodes to be provisioned, and also to prevent instances from being over-utilized. Spotinst Kubernetes Autoscaler optimally manages the headroom to provide the best possible cost/performance balance. However, headroom may also be manually configured to support any use case.
The number of headroom units to reserve for the actual headroom in the cluster is defined as
numOfUnits consists of CPU units (
cpuPerUnit) defined as 1000 units per 1 vCPU, and Memory (
memoryPerUnit) in MiB.
Spotinst’s Elastigroup integration combined with the Kubernetes Autoscaler allows you to not only save 80% of your compute costs by running heterogeneous Kubernetes minion nodes deployed in multiple availability zones but also optimize the CPU utilization of your cluster by roughly 30%.
Preemptive Instance Replacement and Clean Scale Down
Elastigroup will ensure cluster availability using a prediction algorithm and designated monitoring services. When predicting node failure, a new node is preemptively launched and the faulted instance will begin draining its current pods to reschedule to the new instance. All pods and services will be rescheduled to run on different nodes.
We built Spotinst Kubernetes Autoscaler to allow you the ability to scale your cluster to meet the high demands of your users and save additional money in the process.
How To Get Started
To activate the Spotinst Kubernetes Autoscaler for Amazon EKS, follow the guide here
To activate with KOPS follow the guide here
To activate with GKE follow the guide here