6.2. 클러스터 자동 스케일러 구성
먼저 클러스터 자동 스케일러를 배포하여 OpenShift Container Platform 클러스터에서 리소스의 자동 스케일링을 관리합니다.
참고
클러스터 자동 스케일러의 범위는 전체 클러스터에 설정되므로 클러스터에 대해 하나의 클러스터 자동 스케일러만 만들 수 있습니다.
6.2.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 logVerbosity: 4 10 scaleDown: 11 enabled: true 12 delayAfterAdd: 10m 13 delayAfterDelete: 5m 14 delayAfterFailure: 30s 15 unneededTime: 5m 16 utilizationThreshold: "0.4" 17
- 1
- 클러스터 자동 스케일러가 추가 노드를 배포하도록 하려면 pod가 초과해야하는 우선 순위를 지정합니다. 32 비트 정수 값을 입력합니다.
podPriorityThreshold
값은 각 pod에 할당한PriorityClass
의 값과 비교됩니다. - 2
- 배포할 최대 노드 수를 지정합니다. 이 값은 Autoscaler가 제어하는 머신뿐 만 아니라 클러스터에 배치 된 총 머신 수입니다. 이 값이 모든 컨트롤 플레인 및 컴퓨팅 머신과
MachineAutoscaler
리소스에 지정한 총 복제본 수에 대응할 수 있을 만큼 충분한 크기의 값인지 확인합니다. - 3
- 클러스터에 배포할 최소 코어 수를 지정합니다.
- 4
- 클러스터에 배포할 최대 코어 수를 지정합니다.
- 5
- 클러스터에서 최소 메모리 크기를 GiB 단위로 지정합니다.
- 6
- 클러스터에서 최대 메모리 크기를 GiB단위로 지정합니다.
- 7
- 선택 사항: 배포할 GPU 노드 유형을 지정합니다.
nvidia.com/gpu
및amd.com/gpu
만 유효한 유형입니다. - 8
- 클러스터에 배포할 최소 GPU 수를 지정합니다.
- 9
- 클러스터에 배포할 최대 GPU 수를 지정합니다.
- 10
- 로깅 세부 정보 표시 수준을
0
에서10
사이로 지정합니다. 지침을 위해 다음과 같은 로그 수준 임계값이 제공됩니다.-
1
: (기본값) 변경 사항에 대한 기본 정보입니다. -
4
: 일반적인 문제 해결을 위한 디버그 수준 상세 정보. -
9
: 광범위한 프로토콜 수준 디버깅 정보
값을 지정하지 않으면 기본값
1
이 사용됩니다. -
- 11
- 12
- 클러스터 자동 스케일러가 불필요한 노드를 제거할 수 있는지 여부를 지정합니다.
- 13
- 선택 사항: 최근에 노드를 추가한 후 노드를 삭제하기 전에 대기할 기간을 지정합니다. 값을 지정하지 않으면 기본값으로
10m
이 사용됩니다. - 14
- 선택 사항: 최근에 노드가 삭제된 후 노드를 삭제하기 전에 대기할 기간을 지정합니다. 값을 지정하지 않으면 기본값으로
0s
가 사용됩니다. - 15
- 선택 사항: 축소 오류가 발생한 후 노드를 삭제하기 전에 대기할 기간을 지정합니다. 값을 지정하지 않으면 기본값으로
3m
가 사용됩니다. - 16
- 선택 사항: 불필요한 노드가 삭제되기 전에 기간을 지정합니다. 값을 지정하지 않으면 기본값
10m
이 사용됩니다.<17> 선택 사항: 불필요한 노드가 삭제할 수 있는 아래의 노드 사용률 수준을 지정합니다. 노드 사용률 수준은 노드에 할당된 리소스로 분할된 요청된 리소스의 합계이며"0"
보다 크고"1"
보다 작은 값이어야 합니다. 값을 지정하지 않으면 클러스터 자동 스케일러는 기본값"0.5"
를 사용하며 이는 50%의 사용률에 해당합니다. 이 값은 문자열로 표현되어야 합니다.
참고
스케일링 작업을 수행할 때 클러스터 자동 스케일러는 클러스터에서 배포할 최소 및 최대 코어 수 또는 메모리 양과 같은 ClusterAutoscaler
리소스 정의에 설정된 범위 내에 유지됩니다. 그러나 클러스터 자동 스케일러는 해당 범위 내에 있는 클러스터의 현재 값을 수정하지 않습니다.
클러스터 자동 스케일러가 노드를 관리하지 않더라도 최소 및 최대 CPU, 메모리, GPU 값은 클러스터의 모든 노드에서 해당 리소스를 계산하여 결정됩니다. 예를 들어 클러스터 자동 스케일러가 컨트롤 플레인 노드를 관리하지 않더라도 컨트롤 플레인 노드는 클러스터의 총 메모리에 간주됩니다.
6.2.2. 클러스터 자동 스케일러 배포
클러스터 자동 스케일러를 배포하려면 ClusterAutoscaler
리소스의 인스턴스를 만듭니다.
절차
-
사용자 정의된 리소스 정의가 포함된
ClusterAutoscaler
리소스의 YAML 파일을 만듭니다. 클러스터에서 리소스를 생성합니다.
$ oc create -f <filename>.yaml 1
- 1
<filename>
은 사용자 정의 리소스 파일의 이름입니다.