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
입니다.globalDefault
가true
로 설정된 하나의 우선순위 클래스만 클러스터에 존재할 수 있습니다.globalDefault:true
가 설정된 우선순위 클래스가 없는 경우 우선순위 클래스 이름이 없는 Pod의 우선순위는 0입니다.globalDefault:true
를 사용하여 우선순위 클래스를 추가하면 우선순위 클래스를 추가한 후 생성된 Pod에만 영향을 미치고 기존 Pod의 우선순위는 변경되지 않습니다. - 5
- 개발자가 이 우선순위 클래스와 함께 사용해야 하는 Pod를 설명하는 임의의 텍스트 문자열(선택 사항)입니다.
프로세스
우선순위 및 선점을 사용하도록 클러스터를 구성하려면 다음을 수행합니다.
우선순위 클래스를 한 개 이상 생성합니다.
- 우선순위의 이름과 값을 지정합니다.
-
필요한 경우 우선순위 클래스 및 설명에
globalDefault
필드를 지정합니다.
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에 사용할 우선순위 클래스를 지정합니다.
Pod를 생성합니다.
$ oc create -f <file-name>.yaml
Pod 구성 또는 Pod 템플릿에 우선순위 이름을 직접 추가할 수 있습니다.