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