23.5. 오버 커밋을 위한 마스터 구성
예약은 요청된 리소스를 기반으로하는 반면 할당량 및 하드 제한은 리소스 제한을 나타내며 이는 요청된 리소스보다 높은 값으로 설정할 수 있습니다. 요청과 제한의 차이에 따라 오버 커밋 수준이 결정됩니다. 예를 들어, 컨테이너에 1Gi의 메모리 요청과 2Gi의 메모리 제한이 지정되면 노드에서 사용 가능한 1Gi 요청에 따라 컨테이너가 예약되지만 최대 2Gi를 사용할 수 있습니다. 따라서 이 경우 200% 오버 커밋되는 것입니다.
OpenShift Container Platform 관리자가 노드에서 오버 커밋 수준을 제어하고 컨테이너 밀도를 관리하려는 경우 개발자 컨테이너에 설정된 요청과 제한 사이의 비율을 덮어쓰도록 마스터를 구성할 수 있습니다. 제한 및 기본값을 지정하는 프로젝트별 LimitRange 와 함께 컨테이너 제한 및 요청을 조정하여 원하는 수준의 과다 할당을 수행합니다.
이렇게 하려면 master-config.yaml 에서 ClusterResourceOverride
승인 컨트롤러를 구성해야 합니다(기존 구성 트리가 있는 경우 재사용하거나 필요한 경우 absent 요소를 도입합니다).
admissionConfig: pluginConfig: ClusterResourceOverride: 1 configuration: apiVersion: v1 kind: ClusterResourceOverrideConfig memoryRequestToLimitPercent: 25 2 cpuRequestToLimitPercent: 25 3 limitCPUToMemoryPercent: 200 4
- 1
- 이 이름은 플러그인 이름입니다. 대소문자는 중요하며, 플러그인 이름과 정확히 일치하는 항목은 무시됩니다.
- 2
- (선택 사항, 1-100) 컨테이너 메모리 제한이 지정되거나 기본값으로 설정된 경우 메모리 요청이 제한 백분율로 재정의됩니다.
- 3
- (선택 사항, 1-100) 컨테이너 CPU 제한이 지정되거나 기본값으로 설정된 경우 CPU 요청이 이 제한 백분율로 재정의됩니다.
- 4
- (선택 사항, 양의 정수) 컨테이너 메모리 제한이 지정되거나 기본값으로 설정된 경우 CPU 제한이 메모리 제한의 백분율로 재정의되고 1Gi의 RAM을 1개의 CPU 코어로 스케일링하는 100퍼센트가 설정됩니다. CPU 요청을 재정의하기 전에 처리됩니다(설정된 경우).
마스터 구성을 변경한 후에는 마스터를 다시 시작해야 합니다.
컨테이너에 제한이 설정되지 않은 경우 이러한 덮어쓰기가 적용되지 않습니다. 덮어쓰기 를 적용하기 위해 기본 제한(개별 프로젝트당 또는 프로젝트 템플릿)을사용하여 LimitRange 오브젝트를 생성합니다.
또한 재정의 후에도 프로젝트의 LimitRange 오브젝트에서 컨테이너 제한 및 요청을 계속 검증해야 합니다. 예를 들어 개발자가 최소 제한에 가까운 제한을 지정하고 요청에서 최소 제한 미만을 덮어쓰도록 하여 Pod를 금지할 수 있습니다. 이 사용자 경험은 향후 작업에서 해결해야 하지만 현재는 이 기능과 LimitRanges를 주의해서 구성하십시오.
구성된 경우 프로젝트를 편집하고 다음 주석을 추가하여 프로젝트별로 덮어쓰기를 비활성화할 수 있습니다(예: 인프라 구성 요소를 재정의와 독립적으로 구성 가능).
quota.openshift.io/cluster-resource-override-enabled: "false"