2.5.4. Vertical Pod Autoscaler Operator 사용
VPA(Vertical Pod Autoscaler Operator) CR(사용자 정의 리소스)을 생성하여 VPA를 사용할 수 있습니다. CR은 VPA에서 해당 Pod에 수행할 작업을 분석하고 결정해야 하는 Pod를 나타냅니다.
프로세스
특정 워크로드 오브젝트에 대한 VPA CR을 생성하려면 다음을 수행합니다.
스케일링할 워크로드 오브젝트가 있는 프로젝트로 변경합니다.
VPA CR YAML 파일을 생성합니다.
apiVersion: autoscaling.k8s.io/v1 kind: VerticalPodAutoscaler metadata: name: vpa-recommender spec: targetRef: apiVersion: "apps/v1" kind: Deployment 1 name: frontend 2 updatePolicy: updateMode: "Auto" 3 resourcePolicy: 4 containerPolicies: - containerName: my-opt-sidecar mode: "Off"
- 1
- 이 VPA에서 관리할 워크로드 오브젝트 유형을 지정합니다.
Deployment
,StatefulSet
,Job
,DaemonSet
,ReplicaSet
또는ReplicationController
. - 2
- 이 VPA에서 관리할 기존 워크로드 오브젝트의 이름을 지정합니다.
- 3
- 다음과 같이 VPA 모드를 지정합니다.
-
auto
: 컨트롤러와 연결된 Pod에 권장 리소스를 자동으로 적용합니다. VPA는 기존 Pod를 종료하고 권장 리소스 제한 및 요청을 사용하여 새 Pod를 생성합니다. -
recreate
: 워크로드 오브젝트와 연결된 Pod에 권장 리소스를 자동으로 적용합니다. VPA는 기존 Pod를 종료하고 권장 리소스 제한 및 요청을 사용하여 새 Pod를 생성합니다.recreate
모드는 리소스 요청이 변경될 때마다 Pod를 재시작해야 하는 경우에만 사용해야 합니다. -
initial
: 워크로드 오브젝트와 연결된 Pod가 생성될 때 권장 리소스를 자동으로 적용합니다. VPA는 새 리소스 권장 사항을 확인할 때 Pod를 업데이트하지 않습니다. -
off
: 워크로드 오브젝트와 연결된 Pod의 리소스 권장 사항만 생성합니다. VPA는 새 리소스 권장 사항을 확인할 때 Pod를 업데이트하지 않고 해당 권장 사항을 새 Pod에 적용하지도 않습니다.
-
- 4
- 선택 사항입니다. 옵트아웃할 컨테이너를 지정하고 모드를
Off
로 설정합니다.
VPA CR을 생성합니다.
$ oc create -f <file-name>.yaml
잠시 후 VPA는 워크로드 오브젝트와 연결된 Pod에서 컨테이너의 리소스 사용량을 확인합니다.
다음 명령을 사용하여 VPA 권장 사항을 볼 수 있습니다.
$ oc get vpa <vpa-name> --output yaml
출력에는 CPU 및 메모리 요청에 대한 권장 사항이 표시되며 다음과 유사합니다.
출력 예
... status: ... recommendation: containerRecommendations: - containerName: frontend lowerBound: 1 cpu: 25m memory: 262144k target: 2 cpu: 25m memory: 262144k uncappedTarget: 3 cpu: 25m memory: 262144k upperBound: 4 cpu: 262m memory: "274357142" - containerName: backend lowerBound: cpu: 12m memory: 131072k target: cpu: 12m memory: 131072k uncappedTarget: cpu: 12m memory: 131072k upperBound: cpu: 476m memory: "498558823" ...