25.4.2. 메모리 사용률 자동 스케일링
CPU 기반 자동 스케일링과 달리 메모리 기반 자동 스케일링은 oc autoscale
명령을 사용하는 대신 YAML을 사용하여 자동 스케일러를 지정해야 합니다. 필요한 경우 최소 Pod 수와 Pod에서 대상으로 하는 평균 메모리 사용률도 지정할 수 있습니다. 그러지 않으면 OpenShift Container Platform 서버에서 기본값이 제공됩니다.
메모리 사용률에 대한 자동 스케일링은 기술 프리뷰 기능입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원하지 않으며, 기능상 완전하지 않을 수 있어 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능 지원 범위에 대한 자세한 내용은 https://access.redhat.com/support/offerings/techpreview/를 참조하십시오.
메모리 기반 자동 스케일링은 v2beta1
버전의 자동 스케일링 API에서만 사용할 수 있습니다.
메모리 기반 자동 스케일링을 사용하려면 다음을 수행합니다.
메모리 기반 자동 스케일링을 활성화합니다.
클러스터의
master-config.yaml
파일에 다음을 추가합니다.... apiServerArguments: runtime-config: - apis/autoscaling/v2beta1=true ...
OpenShift Container Platform 서비스를 다시 시작합니다.
$ master-restart api $ master-restart controllers
필요한 경우 스케일링할 오브젝트의 이름을 가져옵니다.
$ oc get dc NAME REVISION DESIRED CURRENT TRIGGERED BY frontend 1 5 0 config
hpa.yaml
과 같은 파일에 다음을 배치합니다.apiVersion: autoscaling/v2beta1 kind: HorizontalPodAutoscaler metadata: name: hpa-resource-metrics-memory 1 spec: scaleTargetRef: apiVersion: apps.openshift.io/v1 2 kind: DeploymentConfig 3 name: frontend 4 minReplicas: 2 5 maxReplicas: 10 6 metrics: - type: Resource resource: name: memory targetAverageUtilization: 50 7
- 1
- 이 수평 Pod 자동 스케일러 오브젝트의 이름입니다.
- 2
- 스케일링할 오브젝트의 API 버전입니다.
-
ReplicationController의 경우
v1
을 사용합니다. -
DeploymentConfig의 경우
apps.openshift.io/v1
을 사용합니다.
-
ReplicationController의 경우
- 3
ReplicationController
또는DeploymentConfig
중 스케일링할 오브젝트의 종류입니다.- 4
- 스케일링할 기존 오브젝트의 이름입니다.
- 5
- 축소 시 최소 복제본 수입니다. 기본값은
1
입니다. - 6
- 확장할 때 최대 복제본 수입니다.
- 7
- 각 포드에서 사용해야 하는 요청된 메모리의 평균 백분율입니다.
그런 다음 위 파일에서 자동 스케일러를 생성합니다.
$ oc create -f hpa.yaml
메모리 기반 자동 스케일링이 작동하려면 메모리 사용량이 복제본 수에 비례하여 증가 및 감소해야 합니다. 평균적으로 다음과 같습니다.
- 복제본 수가 증가하면 Pod당 메모리(작업 집합) 사용량이 전반적으로 감소해야 합니다.
- 복제본 수가 감소하면 Pod별 메모리 사용량이 전반적으로 증가해야 합니다.
메모리 기반 자동 스케일링을 사용하기 전에 OpenShift 웹 콘솔을 사용하여 애플리케이션의 메모리 동작을 확인하고 애플리케이션이 이러한 요구 사항을 충족하는지 확인합니다.