AWS Cluster Autoscaler

Palette supports Autoscaling for our EKS clusters to maximise the benefits of the AWS Cloud utilization. Palette Auto Scaling ensures that instances are launched propotional to the workload on the EKS cluster. The resources are scaled up and down based on the changing workload on the cluster by continously monitoring the applications and automatically adjusts the capacity to maintain steady, predictable performance at the lowest possible cost.

Prerequisite

  • Kubernetes version 1.19.x and above.
  • Full Cluster Autoscaler Policy for the service account.
  • Update the Kubernetes Pack node group managedMachinePool with the ARN of the autoscaler policy created for the service account.

Full Cluster Autoscaler Features Policy (Recommended)

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"autoscaling:DescribeAutoScalingGroups",
"autoscaling:DescribeAutoScalingInstances",
"autoscaling:DescribeLaunchConfigurations",
"autoscaling:DescribeTags",
"ec2:DescribeInstanceTypes",
"ec2:DescribeLaunchTemplateVersions"
],
"Resource": ["*"]
},
{
"Effect": "Allow",
"Action": [
"autoscaling:SetDesiredCapacity",
"autoscaling:TerminateInstanceInAutoScalingGroup",
"ec2:DescribeInstanceTypes",
"eks:DescribeNodegroup"
],
"Resource": ["*"]
}
]
}

To deploy AWS Autoscaler, update the Kubernetes pack managedMachinePool node group with the ARN of the autoscaler policy created for the service account.

managedMachinePool:
#roleName: {{ name of the self-managed role | format "${string}" }}
## A list of additional policies to attach to the node group role
roleAdditionalPolicies:
- "arn:aws:iam::012345678910:policy/autoscalingpolicy"

Versions Supported

1.22.2

References

https://github.com/splunk/splunk-connect-for-kubernetes