본문 바로가기

AWS

[EKS 애드온 #2] Cluster Autoscaler Helm으로 설치하기

반응형

Cluster AutoscalerCluster의 NodeGroup을 자동으로 스케일링 해주는 오픈소스 Addons이다.

 

본 문서는 설치까지만 안내할 뿐 자세한 사용법에 대해서는 안내하지 않는다.

 

 

Github : https://github.com/kubernetes/autoscaler


 

Cluster Autoscaler IAM Role 설정

data "aws_iam_policy_document" "cluster-autoscaler" {
  statement {
    sid       = ""
    effect    = "Allow"
    resources = ["*"]

    actions = [
      "autoscaling:DescribeAutoScalingGroups",
      "autoscaling:DescribeAutoScalingInstances",
      "autoscaling:DescribeLaunchConfigurations",
      "autoscaling:DescribeTags",
      "ec2:DescribeInstanceTypes",
      "ec2:DescribeLaunchTemplateVersions",
    ]
  }

  statement {
    sid       = ""
    effect    = "Allow"
    resources = ["*"]

    actions = [
      "autoscaling:SetDesiredCapacity",
      "autoscaling:TerminateInstanceInAutoScalingGroup",
      "ec2:DescribeInstanceTypes",
      "eks:DescribeNodegroup",
    ]
  }
}

 

 

Helm으로 Cluseter Autoscaler 구성

Github : https://github.com/kubernetes/autoscaler/tree/master/charts/cluster-autoscaler

 

# Repo 추가
helm repo add autoscaler https://kubernetes.github.io/autoscaler
helm repo update autoscaler

# Cluster Autoscaler 구성
helm upgrade --install -f values.yaml --namespace kube-system cluster-autoscaler autoscaler/cluster-autoscaler

# 업그레이드
helm upgrade -f values.yaml --namespace kube-system cluster-autoscaler autoscaler/cluster-autoscaler

 

values.yaml 수정 내역

1. clusterName

 

2. nodeSelector

 

3. awsRegion

 

4. rbac.serviceAccount.annotations에 IRSA 추가

5. rbac.serviceAccount.name : cluster-autoscaler

https://github.com/terraform-aws-modules/terraform-aws-eks/issues/801#issuecomment-696733518

 

-> 이상하게도, serviceAccount.name을 설정하지 않으면 Cluster Autoscaler Pod가 SA를 인식하지 못하는 에러가 발생하였다. 하여 serviceAccount Name을 넣어주었다.

 

반응형