And Brain said,

K8s/ Horizontal Pod Autoscaler(HPA), 자동 파드 증식 본문

IT/Kubernetes

K8s/ Horizontal Pod Autoscaler(HPA), 자동 파드 증식

The Man 2023. 10. 13. 11:04
반응형

 

Kubernetes(이하, K8s)는 Horizontal Pod Autoscaler(이하, HPA)라는 기능을 제공하는데, 이는 파드의 수를 자동으로 조절하여 워크로드의 리소스 사용량에 따라 자동으로 확장 및 축소할 수 있게 한다. 이를 통해, 부하가 적을땐 파드를 자동으로 축소하고 부하가 많을땐 자동으로 확장하여 부하에 따른 파드 수를 조절할 수 있게 된다.

 

 

 

먼저, Metric Server를 설치한다.

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

 

Metric Server는 각 노드별 TLS 인증이 필요한데, 인증서를 생성하여 SANs를 포함하여 생성하든지 아니면, TLS 검증을 비활성화해서 사용할 수 있다.

 

 

아래의 명령어를 통해

kubectl edit deployments.apps -n kube-system metrics-server

 

 

--kubelet-insecure-tls를 메트릭 서버의 시작 인자에 추가해준다.

 

containers:
        - resources:
            requests:
              cpu: "100m"
              memory: "500Mi"
            limits:
              cpu: "500m"
              memory: "1200Mi"

 

이후 K8s Deployment yaml 파일 내에 containers 필드에 resources 필드를 정해서 여러분들의 최소 요청 리소스와 최대 리소스를 제한해준 뒤, hpa.yaml 파일에

 

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: example-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: example-deployment
  minReplicas: 1
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 80
    - type: Resource
      resource:
        name: memory
        target:
          type: Utilization
          averageUtilization: 80

 

원하는 레플리카 수와 제한 리소스의 몇 퍼센트정도의 비율이 되야 확장을 할 지 정해주면 끝.

 

 

Thanks for watching, Have a nice day.

반응형
Comments