일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 클라우드 국비지원교육
- 단기 합격
- 공부 방법
- 외부 모듈
- CAS
- 도커
- k8s
- aews
- POD
- keda
- 국비지원교육
- EKS
- Jenkins
- Python
- 합격 후기
- Terraform
- volume
- docker
- 클라우드 엔지니어
- 클라우드 국비지원교육 후기
- observability
- aews vault
- karpenter
- aews ci/cd
- VPA
- kubernetes
- HPA
- AWS
- eks endpoint access
- storageclass
- Today
- Total
모험가
AEWS 5주차 - EKS Autoscaling(HPA, VPA, CAS, Karpenter, KEDA - 이론) 본문
본 글은 가시다님이 진행하시는 AEWS(AWS EKS Workshop Study)를 참여하여 정리한 글입니다. 모르는 부분이 많아서 틀린 내용이 있다면 말씀 부탁드리겠습니다! |
EKS AutoScaling 종류
EKS Auto Scaling기술에는 대표적으로 4개가 존재합니다.
1. HPA
2. VPA
3. CAS
4. Karpenter
그림 출처 : CON324_Optimizing-Amazon-EKS-for-performance-and-cost-on-AWS
특징
- VPA (Vertical Pod Autoscaler): Pod Scale-up/down
- VPA는 개별 파드의 CPU와 메모리 요구사항을 모니터링하고 자동으로 조정합니다.
- 파드의 리소스 사용량이 증가하면 VPA가 자동으로 파드의 리소스 요청을 늘려줍니다.
- 이를 통해 파드가 필요한 만큼의 리소스를 사용할 수 있도록 합니다.
- HPA (Horizontal Pod Autoscaler): Pod Scale-out/in
- HPA는 파드의 수를 자동으로 늘리거나 줄여 클러스터의 부하를 관리합니다.
- CPU 사용률, 메모리 사용률 등의 지표를 모니터링하여 파드 수를 조정합니다.
- 서비스의 트래픽이 증가하면 HPA가 자동으로 파드 수를 늘려 확장성을 제공합니다.
- CSA (Cluster Autoscaler): Node Scale-out/in
- CSA는 클러스터의 노드 수를 자동으로 늘리거나 줄여 리소스 활용도를 최적화합니다.
- 노드의 리소스 사용량을 모니터링하여 필요에 따라 노드를 추가하거나 제거합니다.
- 이를 통해 클러스터가 항상 적절한 리소스를 가지도록 유지합니다.
- Karpenter: Node Scale-out/in & up/down
- Karpenter는 AWS에서 개발한 오픈소스 자동 스케일링 솔루션입니다.
- 기존 Cluster Autoscaler와 유사한 기능을 제공하지만, 더 유연하고 확장 가능한 아키텍처를 가지고 있습니다.
- Karpenter는 다양한 EC2 인스턴스 유형과 스팟 인스턴스를 활용하여 비용 효율성을 높일 수 있습니다.
Karpenter
CAS와 Karpenter이 둘다 노드의 Scale out/in을 지원하는데 특징이 무엇이 있을까요?
CAS
CAS (Cluster Autoscaler):
- CAS는 Kubernetes 클러스터의 노드 수를 자동으로 조정하는 기능을 제공합니다.
- 클러스터의 리소스 사용량을 모니터링하여, 필요에 따라 노드를 추가하거나 제거합니다.
- 이를 통해 클러스터가 항상 적절한 리소스를 가지도록 유지할 수 있습니다.
- CAS는 AWS, GCP, Azure 등 다양한 클라우드 환경에서 사용할 수 있습니다.
CAS의 한계점:
-
- CAS는 기본적으로 노드 수만 조정하므로, 노드 내부의 리소스 활용도를 최적화하지 못합니다.
- 예를 들어, 노드의 CPU나 메모리 사용량이 높더라도 CAS는 새로운 노드를 추가하지 않습니다.
- 혼합 인스턴스 타입은 가능한 CPU와 메모리가 균등하게 되어야 합니다.
Karpenter
Karpenter:
- Karpenter는 AWS에서 개발한 오픈소스 자동 스케일링 솔루션입니다.
- CAS와 유사한 기능을 제공하지만, 더 유연하고 확장 가능한 아키텍처를 가지고 있습니다.
- Karpenter는 다양한 EC2 인스턴스 유형과 스팟 인스턴스를 활용하여 비용 효율성을 높일 수 있습니다.
- 노드 수 조정 외에도 노드 내부의 리소스 활용도를 최적화할 수 있습니다.
- 사용자 정의 스케일링 정책을 설정할 수 있어 다양한 요구사항을 충족할 수 있습니다.
첫번째 그림과 같이 CAS와 달리 Karpenter이 사전에 정의된 내용에 따라 직접 EC2플릿에 추가/제거를 하기때문에 빠른 속도로 인프라를 확장/축소가 가능해집니다.
KEDA
KEDA(Kubernetes-based Event Driven Autoscaling) 는 Kubernetes 환경에서 이벤트 기반 자동 스케일링을 제공하는 강력한 오픈소스 솔루션입니다.
CAS, Karpenter 등과 함께 EKS 클러스터의 효과적인 자동 스케일링을 위해 활용될 수 있습니다.
특징
- 이벤트 기반 서버리스 워크로드 자동 스케일링
- 메시징 시스템(RabbitMQ, Apache Kafka 등) 기반 애플리케이션 스케일링
- 외부 API 호출 기반 워크로드 스케일링
EKS Node Viewer
EKS Node Viewer는 EKS 클러스터의 노드 상태를 시각화하고 모니터링할 수 있는 유용한 도구입니다. 이를 통해 EKS 클러스터의 안정성과 가용성을 높일 수 있습니다.
특징
- 노드 상태 모니터링: EKS Node Viewer를 통해 EKS 클러스터의 노드 상태를 실시간으로 확인할 수 있습니다. CPU, 메모리, 디스크 사용량 등 다양한 지표를 확인할 수 있습니다.
- 시각화: EKS Node Viewer는 노드 상태를 직관적인 대시보드 형태로 제공합니다. 노드의 상태, 리소스 사용량 등을 한눈에 파악할 수 있습니다.
- 문제 해결 지원: 노드 상태 모니터링을 통해 리소스 부족, 노드 장애 등의 문제를 신속하게 파악하고 해결할 수 있습니다.
- 확장성: EKS Node Viewer는 EKS 클러스터 뿐만 아니라 다른 Kubernetes 클러스터에서도 사용할 수 있습니다.
- 통합성: EKS Node Viewer는 AWS CloudWatch, AWS CloudTrail 등 다른 AWS 서비스와 통합되어 보다 포괄적인 모니터링 환경을 제공합니다.
# Windows 에 WSL2 (Ubuntu) 설치
sudo apt install golang-go
go install github.com/awslabs/eks-node-viewer/cmd/eks-node-viewer@latest # 설치 시 2~3분 정도 소요
echo 'export PATH="$PATH:/root/go/bin"' >> /etc/profile
# 사용법
# Standard usage
eks-node-viewer
# Display both CPU and Memory Usage
eks-node-viewer --resources cpu,memory
eks-node-viewer --resources cpu,memory --extra-labels eks-node-viewer/node-age
# Display extra labels, i.e. AZ : node 에 labels 사용 가능
eks-node-viewer --extra-labels topology.kubernetes.io/zone
eks-node-viewer --extra-labels kubernetes.io/arch
# Sort by CPU usage in descending order
eks-node-viewer --node-sort=eks-node-viewer/node-cpu-usage=dsc
# Karenter nodes only
eks-node-viewer --node-selector "karpenter.sh/provisioner-name"
# Specify a particular AWS profile and region
AWS_PROFILE=myprofile AWS_REGION=us-west-2
'쿠버네티스 > AEWS' 카테고리의 다른 글
AEWS 5주차 - EKS Autoscaling(CAS, CPA, Karpenter - 실습) (0) | 2025.03.06 |
---|---|
AEWS 5주차 - EKS Autoscaling(HPA, VPA, KEDA - 실습) (0) | 2025.03.05 |
AEWS 4주차 - Observability(Prometheus & Grafana) (0) | 2025.02.28 |
AEWS 4주차 - Observability(Cloudwatch Observability, Metrics-server & kwatch) (0) | 2025.02.28 |
AEWS 4주차 - Observability(Monitoring, EKS 컨트롤 플레인, 파드 로깅) (0) | 2025.02.27 |