8.3. 제한 범위 설정


LimitRange 객체로 정의된 제한 범위는 포드, 컨테이너, 이미지, 이미지 스트림 및 영구 볼륨 클레임 수준에서 컴퓨팅 리소스 제약 조건을 정의합니다. 제한 범위는 포드, 컨테이너, 이미지, 이미지 스트림 또는 영구 볼륨 클레임이 사용할 수 있는 리소스 양을 지정합니다.

리소스 생성 및 수정을 위한 모든 요청은 프로젝트의 각 LimitRange 오브젝트에 대해 평가됩니다. 리소스가 열거된 제약 조건을 위반하는 경우 해당 리소스는 거부됩니다. 리소스가 명시적 값을 설정하지 않고 제약 조건이 기본값을 지원하는 경우 기본값이 리소스에 적용됩니다.

CPU 및 메모리 제한의 경우 최대값은 지정하고 최소값은 지정하지 않으면 리소스가 최대값보다 더 많은 CPU 및 메모리 리소스를 소모할 수 있습니다.

코어 한계 범위 객체 정의

apiVersion: "v1"
kind: "LimitRange"
metadata:
  name: "core-resource-limits" 
1

spec:
  limits:
    - type: "Pod"
      max:
        cpu: "2" 
2

        memory: "1Gi" 
3

      min:
        cpu: "200m" 
4

        memory: "6Mi" 
5

    - type: "Container"
      max:
        cpu: "2" 
6

        memory: "1Gi" 
7

      min:
        cpu: "100m" 
8

        memory: "4Mi" 
9

      default:
        cpu: "300m" 
10

        memory: "200Mi" 
11

      defaultRequest:
        cpu: "200m" 
12

        memory: "100Mi" 
13

      maxLimitRequestRatio:
        cpu: "10" 
14
Copy to Clipboard Toggle word wrap

1
제한 범위 오브젝트의 이름입니다.
2
모든 컨테이너에 걸쳐 노드에서 포드가 요청할 수 있는 최대 CPU 양입니다.
3
모든 컨테이너에 걸쳐 노드에서 포드가 요청할 수 있는 최대 메모리 양입니다.
4
모든 컨테이너의 노드에서 포드가 요청할 수 있는 최소 CPU 양입니다. 최소값 을 설정하지 않거나 최소값을 0 으로 설정하면 제한이 없어지고 Pod는 최대 CPU 값보다 더 많은 CPU를 소비할 수 있습니다.
5
모든 컨테이너에 걸쳐 노드에서 포드가 요청할 수 있는 최소 메모리 양입니다. 최소값 을 설정하지 않거나 최소값을 0 으로 설정하면 제한이 없어지고 Pod는 최대 메모리 값보다 더 많은 메모리를 사용할 수 있습니다.
6
Pod의 단일 컨테이너에서 요청할 수 있는 최대 CPU 양입니다.
7
Pod의 단일 컨테이너에서 요청할 수 있는 최대 메모리 양입니다.
8
Pod의 단일 컨테이너에서 요청할 수 있는 최소 CPU 양입니다. 최소값 을 설정하지 않거나 최소값을 0 으로 설정하면 제한이 없어지고 Pod는 최대 CPU 값보다 더 많은 CPU를 소비할 수 있습니다.
9
Pod의 단일 컨테이너에서 요청할 수 있는 최소 메모리 양입니다. 최소값 을 설정하지 않거나 최소값을 0 으로 설정하면 제한이 없어지고 Pod는 최대 메모리 값보다 더 많은 메모리를 사용할 수 있습니다.
10
Pod 사양에 제한을 지정하지 않으면 컨테이너의 기본 CPU 제한이 적용됩니다.
11
Pod 사양에 제한을 지정하지 않으면 컨테이너의 기본 메모리 제한이 적용됩니다.
12
Pod 사양에서 요청을 지정하지 않을 경우 컨테이너의 기본 CPU 요청입니다.
13
Pod 사양에서 요청을 지정하지 않을 경우 컨테이너의 기본 메모리 요청입니다.
14
컨테이너에 대한 최대 제한 대 요청 비율입니다.

OpenShift 컨테이너 플랫폼 제한 범위 객체 정의

apiVersion: "v1"
kind: "LimitRange"
metadata:
  name: "openshift-resource-limits"
spec:
  limits:
    - type: openshift.io/Image
      max:
        storage: 1Gi 
1

    - type: openshift.io/ImageStream
      max:
        openshift.io/image-tags: 20 
2

        openshift.io/images: 30 
3

    - type: "Pod"
      max:
        cpu: "2" 
4

        memory: "1Gi" 
5

        ephemeral-storage: "1Gi" 
6

      min:
        cpu: "1" 
7

        memory: "1Gi" 
8
Copy to Clipboard Toggle word wrap

1
내부 레지스트리로 내보낼 수 있는 이미지의 최대 크기입니다.
2
이미지 스트림에 대한 사양에 정의된 고유 이미지 태그의 최대 개수입니다.
3
이미지 스트림 상태에 대한 사양에 정의된 고유 이미지 참조의 최대 수입니다.
4
모든 컨테이너에 걸쳐 노드에서 포드가 요청할 수 있는 최대 CPU 양입니다.
5
모든 컨테이너에 걸쳐 노드에서 포드가 요청할 수 있는 최대 메모리 양입니다.
6
모든 컨테이너에 걸쳐 노드에서 포드가 요청할 수 있는 임시 저장소의 최대 크기입니다.
7
모든 컨테이너의 노드에서 포드가 요청할 수 있는 최소 CPU 양입니다. 중요한 정보는 지원되는 제약 조건 표를 참조하세요.
8
모든 컨테이너에 걸쳐 노드에서 포드가 요청할 수 있는 최소 메모리 양입니다. 최소값 을 설정하지 않거나 최소값을 0 으로 설정하면 결과에는 제한이 없으며 Pod는 최대 메모리 값보다 더 많은 메모리를 사용할 수 있습니다.

하나의 제한 범위 객체에서 코어 리소스와 OpenShift Container Platform 리소스를 모두 지정할 수 있습니다.

8.3.1. 컨테이너 제한

지원되는 리소스:

  • CPU
  • 메모리

지원되는 제약 조건

컨테이너별로 다음 사항이 지정된 경우 반드시 참이어야 합니다.

컨테이너

Expand
강제동작

Min[<resource>]container.resources.requests[<resource>] 보다 작거나 같음(필수) container/resources.limits[<resource>] 보다 작거나 같음(선택 사항)

구성에서 최소 CPU를 정의하는 경우 요청 값은 CPU 값보다 커야 합니다. 최소값 을 설정하지 않거나 최소값을 0 으로 설정하면 제한이 없어지고 Pod는 최대 값보다 더 많은 리소스를 소비할 수 있습니다.

맥스

container.resources.limits[<resource>] (필수) Max[<resource>] 보다 작거나 같음

구성에서 최대 CPU를 정의하는 경우 CPU 요청 값을 정의할 필요가 없습니다. 하지만 제한 범위에 지정된 최대 CPU 제약 조건을 충족하는 제한을 설정해야 합니다.

MaxLimitRequestRatio

MaxLimitRequestRatio[<리소스>] 가 ( container.resources.limits[<리소스>] / container.resources.requests[<리소스>] )보다 작거나 같음

제한 범위가 maxLimitRequestRatio 제약 조건을 정의하는 경우 모든 새 컨테이너에는 요청 값과 제한 값이 모두 있어야 합니다. 또한 OpenShift Container Platform은 한도를 요청 으로 나누어 한도 대 요청 비율을 계산합니다. 결과는 1보다 큰 정수여야 합니다.

예를 들어 컨테이너의 limit 값이 cpu: 500이고 request 값이 cpu: 100인 경우 cpu의 제한 대 요청 비율은 5입니다. 이 비율은 maxLimitRequestRatio보다 작거나 같아야 합니다.

지원되는 기본값:

Default[<resource>]
값이 없는 경우, container.resources.limit[<resource>]을 지정된 값으로 기본 설정합니다.
기본 요청[<리소스>]
값이 없는 경우, container.resources.requests[<resource>]를 지정된 값으로 기본 설정합니다.

8.3.2. Pod 제한

지원되는 리소스:

  • CPU
  • 메모리

지원되는 제약 조건:

Pod의 모든 컨테이너에서 다음 사항이 충족되어야 합니다.

Expand
표 8.4. Pod
강제강제된 행동

Min[<resource>]container.resources.requests[<resource>] 보다 작거나 같습니다(필수) container.resources.limits[<resource>] 보다 작거나 같습니다. 최소값 을 설정하지 않거나 최소값을 0 으로 설정하면 제한이 없어지고 Pod는 최대 값보다 더 많은 리소스를 소비할 수 있습니다.

맥스

container.resources.limits[<resource>] (필수) Max[<resource>] 보다 작거나 같습니다.

MaxLimitRequestRatio

MaxLimitRequestRatio[<리소스>]가 ( container.resources.limits[<리소스>] / container.resources.requests[<리소스>] )보다 작거나 같습니다.

8.3.3. 이미지 제한

지원되는 리소스:

  • 스토리지

리소스 유형 이름:

  • openshift.io/이미지

이미지별로 다음 사항이 지정된 경우 반드시 참이어야 합니다.

Expand
표 8.5. 이미지
강제동작

맥스

image.dockerimagemetadata.sizeMax[<resource>] 보다 작거나 같습니다.

참고

한도를 초과하는 블롭이 레지스트리에 업로드되는 것을 방지하려면 레지스트리를 구성하여 할당량을 적용해야 합니다. REGISTRY_MIDDLEWARE_REPOSITORY_OPENSHIFT_ENFORCEQUOTA 환경 변수는 true 로 설정해야 합니다. 기본적으로 환경 변수는 새로운 배포의 경우 true 로 설정됩니다.

8.3.4. 이미지 스트림 제한

지원되는 리소스:

  • openshift.io/image-tags
  • openshift.io/images

리소스 유형 이름:

  • openshift.io/ImageStream

이미지 스트림별로 다음 사항이 지정된 경우 반드시 참이어야 합니다.

Expand
표 8.6. ImageStream
강제동작

맥스[openshift.io/image-tags]

length(uniqueimagetags(imagestream.spec.tags)) Max[openshift.io/image-tags] 보다 작거나 같음

uniqueimagetags는 주어진 사양 태그의 이미지에 대한 고유한 참조를 반환합니다.

맥스[openshift.io/images]

length(uniqueimages(imagestream.status.tags)) Max[openshift.io/images] 보다 작거나 같음

uniqueimages는 상태 태그에서 발견된 고유한 이미지 이름을 반환합니다. 이름은 이미지의 다이제스트와 같습니다.

8.3.5. 이미지 참조 계산

openshift.io/image-tags 리소스는 고유한 스트림 제한을 나타냅니다. 가능한 참조는 ImageStreamTag , ImageStreamImage 또는 DockerImage 입니다. 태그는 oc tagoc import-image 명령을 사용하거나 이미지 스트림을 사용하여 생성할 수 있습니다. 내부 참조와 외부 참조는 구분되지 않습니다. 그러나 이미지 스트림 사양에 태그가 지정된 각 고유 참조는 한 번만 계산됩니다. 내부 컨테이너 이미지 레지스트리에 대한 내보내기는 어떤 방식으로든 제한하지 않지만 태그 제한에 유용합니다.

openshift.io/images 리소스는 이미지 스트림 상태에 기록된 고유한 이미지 이름을 나타냅니다. 내부 레지스트리로 내보낼 수 있는 여러 이미지를 제한하는 데 도움이 됩니다. 내부 및 외부 참조는 구분되지 않습니다.

8.3.6. PersistentVolumeClaim 제한

지원되는 리소스:

  • 스토리지

지원되는 제한 사항:

프로젝트의 모든 영구 볼륨 클레임에서 다음 사항이 충족되어야 합니다.

Expand
표 8.7. Pod
제약 조건강제 동작

min[<resource>] <= claim.spec.resources.requests[<resource>] (필수)

Max

claim.spec.resources.requests[<resource>] (필수) <= Max[<resource>]

제한 범위 오브젝트 정의

{
  "apiVersion": "v1",
  "kind": "LimitRange",
  "metadata": {
    "name": "pvcs" 
1

  },
  "spec": {
    "limits": [{
        "type": "PersistentVolumeClaim",
        "min": {
          "storage": "2Gi" 
2

        },
        "max": {
          "storage": "50Gi" 
3

        }
      }
    ]
  }
}
Copy to Clipboard Toggle word wrap

1
제한 범위 오브젝트의 이름입니다.
2
영구 볼륨 클레임에서 요청할 수 있는 최소 스토리지 양입니다.
3
영구 볼륨 클레임에서 요청할 수 있는 최대 스토리지 양입니다.

추가 리소스

스트림 제한에 대한 자세한 내용은 이미지 스트림 관리를 참조하세요.

스트림 제한 에 대한 정보.

컴퓨팅 리소스 제약 에 대한 자세한 내용은 다음을 참조하세요.

CPU와 메모리가 측정되는 방법에 대한 자세한 내용은 권장되는 제어 평면 사례를 참조하세요.

임시 저장소에 대한 제한과 요청을 지정할 수 있습니다. 이 기능에 대한 자세한 내용은 임시 저장소 이해를 참조하세요.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat