11.2. 토폴로지 관리자 정책
토폴로지 관리자는 CPU 관리자 및 장치 관리자와 같은 힌트 공급자로부터 토폴로지 힌트를 수집하고 수집된 힌트로 Pod
리소스를 정렬하는 방법으로 모든 QoS(Quality of Service) 클래스의 Pod
리소스를 정렬합니다.
Topology Manager는 KubeletConfig
사용자 정의 리소스(CR)인 cpumanager-enabled
에서 할당하는 4가지 할당 정책을 지원합니다.
none
정책- 기본 정책으로, 토폴로지 정렬을 수행하지 않습니다.
best-effort
정책-
best-effort
토폴로지 관리 정책이 적용된 포드의 각 컨테이너에 대해 kubelet은 해당 컨테이너에 대한 기본 NUMA 노드 친화성에 따라 NUMA 노드에 필요한 모든 리소스를 정렬하려고 시도합니다. 리소스가 부족하여 할당이 불가능한 경우에도 토폴로지 관리자는 여전히 pod를 허용하지만 할당은 다른 NUMA 노드와 공유됩니다. restricted
정책-
restricted
토폴로지 관리 정책이 적용된 포드의 각 컨테이너에 대해 kubelet은 요청을 충족할 수 있는 이론적 최소 NUMA 노드 수를 결정합니다. 실제 할당에 해당 NUMA 노드 수보다 많은 것이 필요한 경우 토폴로지 관리자는 승인을 거부하고 pod를Terminated
상태로 전환합니다. NUMA 노드의 수가 요청을 충족할 수 있는 경우 토폴로지 관리자는 pod를 허용하고 pod가 실행을 시작합니다. single-numa-node
정책-
single-numa-node
토폴로지 관리 정책이 적용된 pod의 각 컨테이너에 대해 kubelet은 pod에 필요한 모든 리소스를 동일한 NUMA 노드에 할당할 수 있는 경우 해당 pod를 허용합니다. 단일 NUMA 노드 친화성이 불가능한 경우 토폴로지 관리자는 노드에서 pod를 거부합니다. 이로 인해 pod는Terminated
상태가 되고 pod 입장 실패가 발생합니다.