25.4. 자동 스케일링


수평 Pod 자동 스케일러를 생성하여 실행할 최소 및 최대 Pod 수와 Pod에서 목표로 하는 CPU 사용률 또는 메모리 사용률 을 지정할 수 있습니다.

수평 Pod 자동 스케일러가 생성되면 Pod의 지표에 대해 EgressIP을 쿼리하기 시작합니다. RuntimeClass가 초기 메트릭을 가져오기 전에 1~2분이 걸릴 수 있습니다.

EgressIP에서 메트릭을 사용할 수 있게 되면 수평 Pod 자동 스케일러는 현재 지표 사용률과 원하는 메트릭 사용률의 비율을 계산하고 그에 따라 확장 또는 축소합니다. 확장은 일정한 간격으로 수행되지만 지표가 RuntimeClass로 전환되기 전에 1~2분이 걸릴 수 있습니다.

복제 컨트롤러의 경우 이러한 스케일링은 복제 컨트롤러의 복제본과 직접적으로 일치합니다. 배포 구성의 경우 스케일링은 배포 구성의 복제본 수와 직접적으로 일치합니다. 자동 스케일링은 Complete 단계에서 최신 배포에만 적용됩니다.

OpenShift Container Platform은 리소스를 자동으로 차지하여 시작하는 동안과 같이 리소스가 급증하는 동안 불필요한 자동 스케일링을 방지합니다. unready 상태의 Pod는 확장 시 CPU 사용량이 0이고, 축소 시에는 자동 스케일러에서 Pod를 무시합니다. 알려진 메트릭이 없는 Pod는 확장 시 CPU 사용량이 0%이고, 축소 시에는 100%입니다. 이를 통해 HPA를 결정하는 동안 안정성이 향상됩니다. 이 기능을 사용하려면 준비 상태 점검을 구성하여 새 Pod를 사용할 준비가 되었는지 확인해야 합니다.

25.4.1. CPU 사용률 자동 스케일링

CPU 사용률을 자동 스케일링하는 경우 oc autoscale 명령을 사용하여 언제든지 실행하려는 최대 Pod 수와 Pod에서 목표로 하는 평균 CPU 사용률을 지정할 수 있습니다. 선택적으로 최소 Pod 수를 지정할 수 있습니다. 그러지 않으면 Pod에 OpenShift Container Platform 서버의 기본값이 제공됩니다.

예를 들면 다음과 같습니다.

$ oc autoscale dc/frontend --max 10 --cpu-percent=80
deploymentconfig "frontend" autoscaled

예제 명령은 다음 정의를 사용하여 기존 DeploymentConfig에 대한 수평 Pod 자동 스케일러를 생성합니다.

수평 Pod Autoscaler 오브젝트 정의

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: frontend 1
spec:
  scaleTargetRef:
    apiVersion: apps.openshift.io/v1 2
    kind: DeploymentConfig 3
    name: frontend 4
    subresource: scale
  minReplicas: 1 5
  maxReplicas: 10 6
  targetCPUUtilizationPercentage: 80 7

1
이 수평 Pod 자동 스케일러 오브젝트의 이름입니다.
2
스케일링할 오브젝트의 API 버전입니다.
  • ReplicationController의 경우 v1 을 사용합니다.
  • DeploymentConfig의 경우 apps.openshift.io/v1 을 사용합니다.
3
ReplicationController 또는 DeploymentConfig 중 스케일링할 오브젝트의 종류입니다.
4
스케일링할 기존 오브젝트의 이름입니다.
5
축소 시 최소 복제본 수입니다. 기본값은 1입니다.
6
확장할 때 최대 복제본 수입니다.
7
각 Pod에서 사용해야 하는 요청된 CPU의 백분율입니다.

또는 oc autoscale 명령은 수평 Pod 자동 스케일러의 v2beta1 버전을 사용할 때 다음 정의를 사용하여 수평 Pod 자동 스케일러를 생성합니다.

apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
  name: hpa-resource-metrics-cpu 1
spec:
  scaleTargetRef:
    apiVersion: v1 2
    kind: ReplicationController 3
    name: hello-hpa-cpu 4
  minReplicas: 1 5
  maxReplicas: 10 6
  metrics:
  - type: Resource
    resource:
      name: cpu
      targetAverageUtilization: 50 7
1
이 수평 Pod 자동 스케일러 오브젝트의 이름입니다.
2
스케일링할 오브젝트의 API 버전입니다.
  • ReplicationController의 경우 v1 을 사용합니다.
  • DeploymentConfig의 경우 apps.openshift.io/v1 을 사용합니다.
3
ReplicationController 또는 DeploymentConfig 중 스케일링할 오브젝트의 종류입니다.
4
스케일링할 기존 오브젝트의 이름입니다.
5
축소 시 최소 복제본 수입니다. 기본값은 1입니다.
6
확장할 때 최대 복제본 수입니다.
7
각 포드에서 사용해야 하는 요청된 CPU의 평균 백분율입니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.