2022년 전에 정리한 문서들

EKS - Cluster Autoscaler

반가운사람2 2022. 8. 24. 11:28
반응형

pending 상태인 파드가 존재할 경우, 워커 노드를 스케일 아웃하는 것을 다뤄보겠습니다!!

 

AutoScaling - Amazon EKS

AutoScaling 자동 크기 조정은 변화하는 요구 사항에 맞게 리소스를 자동으로 확장하거나 축소하는 기능입니다. 이는 Kubernetes의 주요 기능이며 그렇지 않으면 수동으로 수행하기 위해 많은 인적 자

docs.aws.amazon.com

이제 예를 들어 사용자가 처음에 Cluster를 생성할 때, Des, Min, Max 사이즈를 지정했다고 칩니다. 이때 managed Group 유형은 수명 주기 후크를 생성해서 하트 비트 제한시간을 1800초 즉, 6분동안 상태를 유지하려는 규칙을 지정합니다.
그렇기 때문에 6분 이내동안은 처음에 Scale-Out된 Node가 Pod에 갯수를 줄여도 줄어들지 않는 다는 점을 명시해야합니다.
아래 사진 예는 이제 선수가 처음에 Node 개수를 des만 지정했다면 AutoScaling을 구현하기 위해서 ASG를 수정해줘야합니다.

Nodegroups 수명주기 후크 확인(ASG)

1. 먼저 ASG로 이동 후 확인하도록 합니다.!

2. ASG 편집

AutoScaler 시작할까요?

1. 먼저 ASG 값을 확인합니다.

aws autoscaling \
    describe-auto-scaling-groups \
    --query "AutoScalingGroups[? Tags[? (Key=='eks:cluster-name') && Value=='wsi-eks-cluster']].[AutoScalingGroupName, MinSize, MaxSize,DesiredCapacity]" \
    --output table
  • min > max > des 순

2. Cluster Autoscaler 프로젝트에서 제공하는 배포 파일을 다운로드합니다.

wget https://raw.githubusercontent.com/kubernetes/autoscaler/master/cluster-autoscaler/cloudprovider/aws/examples/cluster-autoscaler-autodiscover.yaml

3. yaml file을 열고 cluster 이름을 설정한 후 배포합니다.

kubectl apply -f cluster-autoscaler-autodiscover.yaml

부하 테스트

1. 실시간 Node수 확인!!

kubectl get nodes -w
 

2. 1000개 파드 배포

wget https://k8s.io/examples/application/deployment.yaml
sed -i 's/replicas: 2/replicas: 1000/g' ./deployment.yaml
kubectl apply -f ./deployment.yaml

3. 콘솔 또는 nodes -w 명령으로 접근해서 확인합니다.

4. 10-20분 정도 있으면 줄어드는 것을 확인합니다.

반응형