Australia/Sydney
BlogDecember 24, 2022

Commands to Configure Karpenter on AWS EKS

Fahd Mirza

Karpenter is the future of cluster autoscaling in Kubernetes. AWS EKS natively supports Karpenter and now its tightly integrated with AWS EKS in various configurations including fargate or managed nodegroups etc. 

Following are few of the commands to be used to install and configure Karpenter on AWS EKS. For full set of instructions, refer here:


export KARPENTER_VERSION=v0.20.0

export CLUSTER_NAME="karpenter-test"

export AWS_DEFAULT_REGION="ap-southeast-2"

export AWS_ACCOUNT_ID="$(aws sts get-caller-identity --query Account --output text)"

export KARPENTER_IAM_ROLE_ARN="arn:aws:iam::${AWS_ACCOUNT_ID}:role/${CLUSTER_NAME}-karpenter"

export CLUSTER_ENDPOINT="$(aws eks describe-cluster --name ${CLUSTER_NAME} --query "cluster.endpoint" --output text)"



echo $KARPENTER_VERSION $CLUSTER_NAME $AWS_DEFAULT_REGION $AWS_ACCOUNT_ID



aws eks update-kubeconfig --region ${AWS_DEFAULT_REGION}  --name ${CLUSTER_NAME}


aws eks update-kubeconfig --name mycluster 



diff ~/.kube/config ~/.kube/config-backup


mv ~/.kube/config.bk ~/.kube/config



helm upgrade --install karpenter oci://public.ecr.aws/karpenter/karpenter --version ${KARPENTER_VERSION} --namespace karpenter --create-namespace \\

  --set serviceAccount.annotations."eks\\.amazonaws\\.com/role-arn"=${KARPENTER_IAM_ROLE_ARN} \\

  --set settings.aws.clusterName=${CLUSTER_NAME} \\

  --set settings.aws.clusterEndpoint=${CLUSTER_ENDPOINT} \\

  --set settings.aws.defaultInstanceProfile=KarpenterNodeInstanceProfile-${CLUSTER_NAME} \\

  --set settings.aws.interruptionQueueName=${CLUSTER_NAME} \\

  --wait


Share this post:
On this page

Let's Partner

If you are looking to build, deploy or scale AI solutions — whether you're just starting or facing production-scale challenges — let's chat.

Subscribe to Fahd's Newsletter

Weekly updates on AI, cloud engineering, and tech innovations