Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

16.2.5.3. 구성 가능한 서술자

이러한 서술자를 기본적으로 /etc/origin/master/scheduler.json 으로 스케줄러 구성에서 구성하여 서술자 함수에 영향을 주는 라벨을 추가할 수 있습니다.

이러한 서술자는 구성 가능하므로 사용자 정의 이름이 다르면 동일한 유형(단일 구성 매개 변수)의 여러 서술자를 결합할 수 있습니다.

이러한 우선순위 사용에 대한 자세한 내용은 스케줄러 정책 수정을 참조하십시오.

ServiceAffinity 는 해당 Pod에서 실행되는 서비스를 기반으로 노드에 Pod를 배치합니다. 동일한 서비스의 Pod를 동일한 노드에 배치하거나 함께 배치하면 효율성이 향상될 수 있습니다.

이 서술자는 동일한 레이블이 있는 노드에서 특정 라벨이 있는 Pod를 노드 선택기 에 배치하려고 합니다.

Pod가 노드 선택기에서 레이블을 지정하지 않으면 첫 번째 Pod가 가용성에 따라 모든 노드에 배치되고 서비스의 모든 후속 포드는 해당 노드와 동일한 레이블 값이 있는 노드에 예약됩니다.

"predicates":[
      {
         "name":"<name>", 1
         "argument":{
            "serviceAffinity":{
               "labels":[
                  "<label>" 2
               ]
            }
         }
      }
   ],
1
서술자의 이름을 지정합니다.
2
일치해야 하는 라벨을 지정합니다.

예를 들면 다음과 같습니다.

        "name":"ZoneAffinity",
        "argument":{
            "serviceAffinity":{
                "labels":[
                    "rack"
                ]
            }
        }

예를 들어 서비스의 첫 번째 포드에 노드 선택기 이 레이블 region=rack 이 있는 노드에 예약된 경우 동일한 서비스에 속하는 다른 모든 후속 포드가 동일한 region=rack 레이블이 있는 노드에 예약됩니다. 자세한 내용은 Pod 배치 제어를 참조하십시오.

다중 수준 레이블도 지원됩니다. 사용자는 동일한 지역 및 동일한 영역 내의 노드(지역별)에 예약되는 서비스에 대한 모든 Pod를 지정할 수도 있습니다.

labelsPresence 매개변수는 특정 노드에 특정 레이블이 있는지 확인합니다. 레이블은 LabelPreference 우선 순위에서 사용하는 노드 그룹을 생성합니다. 레이블 기반 일치는 노드의 실제 위치 또는 레이블로 정의된 상태가 있는 경우 유용할 수 있습니다.

"predicates":[
      {
         "name":"<name>", 1
         "argument":{
            "labelsPresence":{
               "labels":[
                  "<label>" 2
                ],
                "presence": true 3
            }
         }
      }
   ],
1
서술자의 이름을 지정합니다.
2
일치해야 하는 라벨을 지정합니다.
3
라벨이 필요한지 여부를 true 또는 false 중 하나로 지정합니다.
  • presence:false 의 경우 요청된 라벨 중 노드 라벨에 있는 경우 Pod를 예약할 수 없습니다. 라벨이 없으면 Pod를 예약할 수 있습니다.
  • presence:true 의 경우 요청된 모든 라벨이 노드 라벨에 있는 경우 Pod를 예약할 수 있습니다. 모든 라벨이 없으면 Pod가 예약되지 않습니다.

예를 들면 다음과 같습니다.

        "name":"RackPreferred",
        "argument":{
            "labelsPresence":{
                "labels":[
                    "rack",
                    "region"
                ],
                "presence": true
            }
        }