2.9.3. 우선순위 및 선점 구성

우선순위 클래스 오브젝트를 생성하고 Pod 사양에 priorityClassName을 사용하여 Pod를 우선순위에 연결하여 우선순위 및 선점을 적용합니다.

우선순위 클래스 오브젝트 샘플

apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
  name: high-priority 1
value: 1000000 2
preemptionPolicy: PreemptLowerPriority 3
globalDefault: false 4
description: "This priority class should be used for XYZ service pods only." 5

1
우선순위 클래스 오브젝트의 이름입니다.
2
오브젝트의 우선순위 값입니다.
3
이 우선순위 클래스의 선점 여부를 나타내는 선택적 필드입니다. 선점 정책의 기본값은 PreemptLowerPriority로, 해당 우선순위 클래스의 Pod에서 우선순위가 낮은 Pod를 선점할 수 있습니다. 선점 정책이 Never로 설정된 경우 해당 우선순위 클래스의 Pod는 선점하지 않습니다.
4
우선순위 클래스 이름이 지정되지 않은 Pod에 이 우선순위 클래스를 사용해야 하는지의 여부를 나타내는 선택적 필드입니다. 이 필드는 기본적으로 false입니다. globalDefaulttrue로 설정된 하나의 우선순위 클래스만 클러스터에 존재할 수 있습니다. globalDefault:true가 설정된 우선순위 클래스가 없는 경우 우선순위 클래스 이름이 없는 Pod의 우선순위는 0입니다. globalDefault:true를 사용하여 우선순위 클래스를 추가하면 우선순위 클래스를 추가한 후 생성된 Pod에만 영향을 미치고 기존 Pod의 우선순위는 변경되지 않습니다.
5
개발자가 이 우선순위 클래스와 함께 사용해야 하는 Pod를 설명하는 임의의 텍스트 문자열(선택 사항)입니다.

프로세스

우선순위 및 선점을 사용하도록 클러스터를 구성하려면 다음을 수행합니다.

  1. 우선순위 클래스를 한 개 이상 생성합니다.

    1. 우선순위의 이름과 값을 지정합니다.
    2. 필요한 경우 우선순위 클래스 및 설명에 globalDefault 필드를 지정합니다.
  2. Pod 사양을 생성하거나 다음과 같이 우선순위 클래스의 이름을 포함하도록 기존 Pod를 편집합니다.

    우선순위 클래스 이름이 있는 샘플 Pod 사양

    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx
      labels:
        env: test
    spec:
      containers:
      - name: nginx
        image: nginx
        imagePullPolicy: IfNotPresent
      priorityClassName: high-priority 1

    1
    이 Pod에 사용할 우선순위 클래스를 지정합니다.
  3. Pod를 생성합니다.

    $ oc create -f <file-name>.yaml

    Pod 구성 또는 Pod 템플릿에 우선순위 이름을 직접 추가할 수 있습니다.