Aws
EKS MetricServer [ HPA, VPA, CA ] 공부
wngnl05
2024. 12. 24. 15:01
HPA, VPA, CA 란?
더보기
HPA < Horizontal Pod Autoscaler >
Pod의 리소스를 감시하며, 리소스 사용에 따라 Pod의 replicas를 변동하여
Pod의 수를 조절해줍니다.
VPA < Vertical Pod Autoscaler >
** HPA와 같이 사용할 수 없음 **
Pod의 리소스를 감시하며, Pod의 리소스가 부족할 경우 Pod를 Restart 하여
Pod의 리소스를 증가시켜 줍니다.
CA < Cluster Autoscaler >
Node의 자원이 모두소모된 경우 자원이 더 필요하다고 판단하면 새로운 Node를 생성합니다.
새로운 자원이 필요하지 않게되면 생성된 Node를 삭제합니다.
Metric Server
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
kubectl edit deploy -n kube-system metrics-server
https://github.com/jeonilshin/Kubernetes/tree/main/k8s/metricserver
HPA
더보기
Hpa Service 배포
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
Hpa 적용 < Cpu 사용량에 따라 Pod의 수 가 변경됩니다 >
kubectl autoscale deployment -n <네임스페이스> <Deployment 이름> --min <최소 pod 수> --max <최대 pod 수 > --cpu-percent=<CPU 사용량>
Hpa 확인
kubectl get hpa -n <네임스페이스>
Hpa 수정 < 선택사항 >
kubectl edit hpa -n <네임스페이스> <Deployment 이름>
CA
더보기

CA.yaml 다운로드
curl -O https://raw.githubusercontent.com/kubernetes/autoscaler/master/cluster-autoscaler/cloudprovider/aws/examples/cluster-autoscaler-autodiscover.yaml
mv cluster-autoscaler-autodiscover.yaml CA.yaml

cluster-autoscaler.kubernetes.io/safe-to-evict: 'false'
v<Eks 버전>.1
- --node-group-auto-discovery=asg:tag=k8s.io/cluster-autoscaler/enabled,k8s.io/cluster-autoscaler/<노드그룹 이름>
- --balance-similar-node-groups
- --skip-nodes-with-system-pods=false
- --scale-down-utilization-threshold=0.3
- --scale-up-utilization-threshold=0.6
CA 배포
kubectl apply -f CA.yaml
CA 확인
kubectl get clusterrole cluster-autoscaler