Skip to content

Commit 171a763

Browse files
authored
Merge pull request kubernetes#1548 from nolancon/patch-1
Topology Manager - Updates for 1.18
2 parents 895aa61 + 03e6023 commit 171a763

File tree

1 file changed

+15
-12
lines changed

1 file changed

+15
-12
lines changed

keps/sig-node/0035-20190130-topology-manager.md

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ _Reviewers:_
5757
- [Graduation Criteria](#graduation-criteria)
5858
- [Alpha (v1.16) [COMPLETED]](#alpha-v116-completed)
5959
- [Alpha (v1.17) [COMPLETED]](#alpha-v117-completed)
60-
- [Beta (target v1.18)](#beta-target-v118)
60+
- [Beta (v1.18) [COMPLETED]](#beta-v118-completed)
6161
- [GA (stable)](#ga-stable)
6262
- [Test Plan](#test-plan)
6363
- [Single NUMA Systems Tests](#single-numa-systems-tests)
@@ -166,11 +166,11 @@ the assigned CPUs and devices.
166166

167167
Topology affinity is tracked at the container level, similar to devices and
168168
CPU affinity. At pod admission time, a new component called the Topology
169-
Manager collects possible configurations from the Device Manager and the
170-
CPU Manager. The Topology Manager acts as an oracle for local alignment by
171-
those same components when they make concrete resource allocations. We
172-
expect the consulted components to use the inferred QoS class of each
173-
pod in order to prioritize the importance of fulfilling optimal locality.
169+
Manager collects possible configurations for each container in the pod from the
170+
Device Manager and the CPU Manager. The Topology Manager acts as an oracle
171+
for local alignment by those same components when they make concrete resource
172+
allocations. We expect the consulted components to use the inferred QoS class
173+
of each pod in order to prioritize the importance of fulfilling optimal locality.
174174

175175
## Proposed Changes
176176

@@ -180,7 +180,7 @@ This proposal is focused on a new component in the Kubelet called the
180180
Topology Manager. The Topology Manager implements the pod admit handler
181181
interface and participates in Kubelet pod admission. When the `Admit()`
182182
function is called, the Topology Manager collects topology hints from other
183-
Kubelet components.
183+
Kubelet components on a container by container basis.
184184

185185
If the hints are not compatible, the Topology Manager may choose to
186186
reject the pod. Behavior in this case depends on a new Kubelet configuration
@@ -428,7 +428,7 @@ _Figure: Topology Manager fetches affinity from hint providers._
428428

429429
* Allow pods in all QoS classes to request aligned resources.
430430

431-
## Beta (target v1.18)
431+
## Beta (v1.18) [COMPLETED]
432432

433433
* Enable the feature gate by default.
434434
* Provide beta-level documentation.
@@ -484,13 +484,16 @@ systems test.
484484
* Testing the Topology Manager in a continuous integration environment
485485
depends on cloud infrastructure to expose multi-node topologies
486486
to guest virtual machines.
487-
* Implementing the `GetHints()` interface may prove challenging.
487+
* Implementing the `HintProvider` interface may prove challenging.
488488

489489
# Limitations
490490

491-
* Alignment is only possible for pods in the `Guaranteed` QoS class.
492-
* Alignment is only guaranteed for a single container inside a pod.
493-
491+
* The maximum number of NUMA nodes that Topology Manager will allow is 8,
492+
past this there will be a state explosion when trying to enumerate the
493+
possible NUMA affinities and generating their hints.
494+
* The scheduler is not topology-aware, so it is possible to be scheduled
495+
on a node and then fail on the node due to the Topology Manager.
496+
494497
# Alternatives
495498

496499
* [AutoNUMA][numa-challenges]: This kernel feature affects memory

0 commit comments

Comments
 (0)