CAPI Cluster Auto-Scaler Addon
Introduction
The Platform9 managed Cluster Autoscaler for CAPI clusters ensures the resources of the Kubernetes Cluster Worker Node Groups are never exhausted. More specific information about Cluster Autoscaler for CAPI can be found on its specific GitHub pages.
Description
The CAPI Cluster Auto-Scaler add-on continually verifies the number of needed pods that are pending allocation for particular Node Groups. If there are pods that are pending for allocation on a particular Node Group nodes, new nodes are then provisioned and added to the node group to accommodate the demand. When demand drops and fewer nodes are needed, the auto-scalar scales down the node groups. After the autoscaler add-on is enabled and the node-groups are annotated for auto-scalar, the behaviour of the auto-scalar is automatic, so users only need to define the number of replicas to be deployed.
Settings
The CAPI Cluster Auto-Scaler needs to be enabled with cluster creation or post-cluster creation from the add-ons section.
Annotating a Node Group for Auto-scalar
Following annotations need to be added to the instance of the node group custom resources.
Example:
apiVersion: cluster.x-k8s.io/v1beta1
kind: MachineDeployment
metadata:
name: test-md-0
namespace: default
annotations:
cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size: '3'
cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size: '10'
spec:
...
YAML Specifications
apiVersion sunpike.platform9.com/v1alpha2
kind ClusterAddon
metadata
labels
sunpike.pf9.io/cluster'<clsuuid>'
type cluster-auto-scaler-capi
name <clsuuid>-cluster-auto-scaler-capi
namespace default
spec
clusterID'<clsuuid>'
override
params
name clusterAutoscalerNamespace
value kube-system
name clusterNamespace
value test-namespace
name extraArgs
value test_key=test_value,test_key2=test_value2
type cluster-auto-scaler-capi
version1.21.1
watchtrue
Conclusion
Should you encounter any difficulties adopting or deploying the information noted above, our talented and responsive support team is available 24/7/365 to provide any additional assistance needed.