And Brain said,
K8s/ Horizontal Pod Autoscaler(HPA), 자동 파드 증식 본문
반응형
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.
반응형
'IT > Kubernetes' 카테고리의 다른 글
Calico(CNI), 다양한 컨테이너 환경을 뛰어다니는 고양이 (1) | 2024.01.26 |
---|---|
[Error] 쿠버네티스 Unimplemented desc = unknown service runtime.v1.RuntimeService (0) | 2024.01.19 |
가상머신 사용 시 Calico CNI IP 자동감지 인터페이스 변경 (0) | 2023.09.13 |
가상머신 사용 시 K8s 클러스터 노드 간 내부 IP 수정하기 (0) | 2023.09.12 |
Kompose, Docker compose 변환 툴 (0) | 2023.09.04 |
Comments