반응형
Cluster Autoscaler는 Cluster의 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을 넣어주었다.
반응형
'AWS' 카테고리의 다른 글
[EKS] CoreDNS 운영 시 소소한 팁 (Rcode, ndots) (0) | 2022.11.11 |
---|---|
[Istio] EKS 환경에서 Istio로 여러개의 ALB, NLB 모두 사용하기 (0) | 2022.09.17 |
[EKS 애드온 #1] External DNS Helm으로 설치하기 (0) | 2022.08.27 |
[EKS] EKS Cluster 구축 시 고려 사항 정리 (Terraform, Terragrunt, IRSA, Atlantis, Addon, ..) (1) | 2022.08.12 |
[ECS] FireLens로 ECS Fargate 컨테이너 로그 ElasticSearch로 보내기 (0) | 2022.05.02 |