9.2. 다중 프로젝트의 리소스 할당량

ClusterResourceQuota 오브젝트에서 정의하는 다중 프로젝트 할당량은 여러 프로젝트에서 할당량을 공유할 수 있습니다. 선택한 각 프로젝트에서 사용하는 리소스를 집계하고 이 집계 정보를 사용하여 선택한 모든 프로젝트의 리소스를 제한합니다.

이 가이드에서는 클러스터 관리자가 다중 프로젝트에서 리소스 할당량을 설정하고 관리하는 방법을 설명합니다.

9.2.1. 할당량 생성 중 다중 프로젝트 선택

할당량을 생성할 때 주석 선택이나 라벨 선택 또는 둘 다에 따라 다중 프로젝트를 선택할 수 있습니다.

프로세스

  1. 주석에 따라 프로젝트를 선택하려면 다음 명령을 실행합니다.

    $ oc create clusterquota for-user \
         --project-annotation-selector openshift.io/requester=<user_name> \
         --hard pods=10 \
         --hard secrets=20

    이렇게 하면 다음과 같은 ClusterResourceQuota 오브젝트가 생성됩니다.

    apiVersion: quota.openshift.io/v1
    kind: ClusterResourceQuota
    metadata:
      name: for-user
    spec:
      quota: 1
        hard:
          pods: "10"
          secrets: "20"
      selector:
        annotations: 2
          openshift.io/requester: <user_name>
        labels: null 3
    status:
      namespaces: 4
      - namespace: ns-one
        status:
          hard:
            pods: "10"
            secrets: "20"
          used:
            pods: "1"
            secrets: "9"
      total: 5
        hard:
          pods: "10"
          secrets: "20"
        used:
          pods: "1"
          secrets: "9"
    1
    선택한 프로젝트를 통해 적용할 ResourceQuotaSpec 오브젝트입니다.
    2
    주석에 대한 간단한 키-값 선택기입니다.
    3
    프로젝트를 선택하는 데 사용할 수 있는 라벨 선택기입니다.
    4
    선택한 각 프로젝트의 현재 할당량 사용을 설명하는 네임스페이스별 맵입니다.
    5
    선택한 모든 프로젝트에서 집계한 사용량입니다.

    이 다중 프로젝트 할당량 문서는 기본 프로젝트 요청 끝점을 사용하여 <user_name>에서 요청하는 모든 프로젝트를 제어합니다. Pod 10개와 시크릿 20개로 제한되어 있습니다.

  2. 마찬가지로 라벨에 따라 프로젝트를 선택하려면 다음 명령을 실행합니다.

    $  oc create clusterresourcequota for-name \1
        --project-label-selector=name=frontend \2
        --hard=pods=10 --hard=secrets=20
    1
    clusterresourcequotaclusterquota 둘 다 동일한 명령의 별칭입니다. for-nameClusterResourceQuota 오브젝트의 이름입니다.
    2
    라벨에 따라 프로젝트를 선택하려면 --project-label-selector=key=value 형식을 사용하여 키-값 쌍을 제공합니다.

    이렇게 하면 다음과 같은 ClusterResourceQuota 오브젝트 정의가 생성됩니다.

    apiVersion: quota.openshift.io/v1
    kind: ClusterResourceQuota
    metadata:
      creationTimestamp: null
      name: for-name
    spec:
      quota:
        hard:
          pods: "10"
          secrets: "20"
      selector:
        annotations: null
        labels:
          matchLabels:
            name: frontend

9.2.2. 적용 가능한 클러스터 리소스 할당량 보기

프로젝트 관리자는 자신의 프로젝트를 제한하는 다중 프로젝트 할당량을 생성하거나 수정할 수 없지만 관리자는 자신의 프로젝트에 적용되는 다중 프로젝트 할당량 문서를 볼 수 있습니다. 프로젝트 관리자는 AppliedClusterResourceQuota 리소스를 통해 이 작업을 수행할 수 있습니다.

프로세스

  1. 프로젝트에 적용되는 할당량을 보려면 다음을 실행합니다.

    $ oc describe AppliedClusterResourceQuota

    출력 예

    Name:   for-user
    Namespace:  <none>
    Created:  19 hours ago
    Labels:   <none>
    Annotations:  <none>
    Label Selector: <null>
    AnnotationSelector: map[openshift.io/requester:<user-name>]
    Resource  Used  Hard
    --------  ----  ----
    pods        1     10
    secrets     9     20

9.2.3. 선택 단위

할당량 배분을 요청할 때의 잠금 고려 사항으로 인해 다중 프로젝트 할당량에 따라 선택되는 활성 프로젝트의 수는 중요한 고려 사항입니다. 단일 다중 프로젝트 할당량에서 프로젝트를 100개 이상 선택하면 해당 프로젝트의 API 서버 응답성에 불리한 영향을 미칠 수 있습니다.