6.3. 클러스터 자동 스케일러 구성

먼저 클러스터 자동 스케일러를 배포하여 OpenShift Container Platform 클러스터에서 리소스의 자동 스케일링을 관리합니다.

참고

클러스터 자동 스케일러의 범위는 전체 클러스터에 설정되므로 클러스터에 대해 하나의 클러스터 자동 스케일러만 만들 수 있습니다.

6.3.1. ClusterAutoscaler 리소스 정의

ClusterAutoscaler 리소스 정의는 클러스터 자동 스케일러의 매개 변수 및 샘플 값을 표시합니다.

apiVersion: "autoscaling.openshift.io/v1"
kind: "ClusterAutoscaler"
metadata:
  name: "default"
spec:
  podPriorityThreshold: -10 1
  resourceLimits:
    maxNodesTotal: 24 2
    cores:
      min: 8 3
      max: 128 4
    memory:
      min: 4 5
      max: 256 6
    gpus:
      - type: nvidia.com/gpu 7
        min: 0 8
        max: 16 9
      - type: amd.com/gpu
        min: 0
        max: 4
  scaleDown: 10
    enabled: true 11
    delayAfterAdd: 10m 12
    delayAfterDelete: 5m 13
    delayAfterFailure: 30s 14
    unneededTime: 5m 15
1
클러스터 자동 스케일러가 추가 노드를 배포하도록 하려면 pod가 초과해야하는 우선 순위를 지정합니다. 32 비트 정수 값을 입력합니다. podPriorityThreshold 값은 각 pod에 할당한 PriorityClass의 값과 비교됩니다.
2
배포할 최대 노드 수를 지정합니다. 이 값은 Autoscaler가 제어하는 머신뿐 만 아니라 클러스터에 배치 된 총 머신 수입니다. 이 값이 모든 컨트롤 플레인 및 컴퓨팅 머신과 MachineAutoscaler 리소스에 지정한 총 복제본 수에 대응할 수 있을 만큼 충분한 크기의 값인지 확인합니다.
3
클러스터에 배포할 최소 코어 수를 지정합니다.
4
클러스터에 배포할 최대 코어 수를 지정합니다.
5
클러스터에서 최소 메모리 크기를 GiB 단위로 지정합니다.
6
클러스터에서 최대 메모리 크기를 GiB단위로 지정합니다.
7
선택 옵션으로 배포할 GPU 노드 유형을 지정합니다. nvidia.com/gpuamd.com/gpu 만 유효한 유형입니다.
8
클러스터에 배포할 최소 GPU 수를 지정합니다.
9
클러스터에 배포할 최대 GPU 수를 지정합니다.
10
이 섹션에서는 ns, us, ms, s, mh를 포함하여 유효한 ParseDuration 간격을 사용하여 각 작업에 대해 대기하는 기간을 지정할 수 있습니다.
11
클러스터 자동 스케일러가 불필요한 노드를 제거할 수 있는지 여부를 지정합니다.
12
선택 사항으로 노드가 최근에 추가된 후 노드를 삭제하기 전까지 대기할 기간을 지정합니다. 값을 지정하지 않으면 기본값으로 10m이 사용됩니다.
13
최근에 노드가 삭제 된 후 노드를 삭제하기 전에 대기할 기간을 지정하십시오. 값을 지정하지 않으면 기본값으로 10s가 사용됩니다.
14
스케일 다운 실패 후 노드를 삭제하기 전에 대기할 기간을 지정합니다. 값을 지정하지 않으면 기본값으로 3m가 사용됩니다.
15
불필요한 노드가 삭제되기 전 까지 걸기는 기간을 지정합니다. 값을 지정하지 않으면 기본값으로 10m이 사용됩니다.
참고

스케일링 작업을 수행할 때 클러스터 자동 스케일러는 클러스터에서 배포할 최소 및 최대 코어 수 또는 메모리 양과 같은 ClusterAutoscaler 리소스 정의에 설정된 범위 내에 유지됩니다. 그러나 클러스터 자동 스케일러는 해당 범위 내에 있는 클러스터의 현재 값을 수정하지 않습니다.

최소 및 최대 CPU, 메모리 및 GPU 값은 클러스터의 모든 노드에서 해당 리소스를 계산하여 결정합니다(클러스터 자동 스케일러가 노드를 관리하지 않는 경우에도). 예를 들어 클러스터 자동 스케일러가 컨트롤 플레인 노드를 관리하지 않더라도 컨트롤 플레인 노드는 클러스터의 총 메모리에서 고려됩니다.