diff options
| author | Connor Doyle <connor.p.doyle@intel.com> | 2018-10-24 09:31:01 -0700 |
|---|---|---|
| committer | Connor Doyle <connor.p.doyle@intel.com> | 2018-10-24 10:11:13 -0700 |
| commit | 8be27917f5fbee1cd6e79eacca3d98d1509b78fe (patch) | |
| tree | 6286ef839ba8633001c652ec93eb6c7050b54b89 | |
| parent | d96c2fb5cdc91f763719d6b5b51351f769cc543b (diff) | |
Updated diagrams for renaming.
- Added device plugin protocol diff.
| -rw-r--r-- | contributors/design-proposals/node/topology-manager.md | 53 |
1 files changed, 40 insertions, 13 deletions
diff --git a/contributors/design-proposals/node/topology-manager.md b/contributors/design-proposals/node/topology-manager.md index 3373a8e2..eb7032ef 100644 --- a/contributors/design-proposals/node/topology-manager.md +++ b/contributors/design-proposals/node/topology-manager.md @@ -95,9 +95,9 @@ information. socket affinities. The policy to reach that decision can start simple and iterate to include support for arbitrary inter-device graphs. - _HugePages:_ This proposal assumes that pre-allocated HugePages are - spread among the available NUMA nodes in the system. We further assume + spread among the available memory nodes in the system. We further assume the operating system provides best-effort local page allocation for - containers (as long as sufficient HugePages are free on the local NUMA + containers (as long as sufficient HugePages are free on the local memory node. - _CNI:_ Changing the Container Networking Interface is out of scope for this proposal. However, this design should be extensible enough to @@ -173,7 +173,7 @@ above. #### New Interfaces ```go -package numamanager +package topologymanager // TopologyManager helps to coordinate local resource alignment // within the Kubelet. @@ -209,15 +209,15 @@ type HintProvider interface { } ``` -_Topology Manager and related interfaces (sketch)._ +_Listing: Topology Manager and related interfaces (sketch)._ - + -_Topology Manager components._ +_Figure: Topology Manager components._ - + -_Topology Manager instantiation and inclusion in pod admit lifecycle._ +_Figure: Topology Manager instantiation and inclusion in pod admit lifecycle._ ### Changes to Existing Components @@ -233,17 +233,44 @@ _Topology Manager instantiation and inclusion in pod admit lifecycle._ 1. Add `GetTopologyHints()` method to Device Manager. 1. Add Socket ID to Device structure in the device plugin interface. Plugins should be able to determine the socket - when enumerating supported devices. + when enumerating supported devices. See the protocol diff below. 1. Device Manager calls `GetAffinity()` method of Topology Manager when deciding device allocation. - +```diff +diff --git a/pkg/kubelet/apis/deviceplugin/v1beta1/api.proto b/pkg/kubelet/apis/deviceplugin/v1beta1/api.proto +index efbd72c133..f86a1a5512 100644 +--- a/pkg/kubelet/apis/deviceplugin/v1beta1/api.proto ++++ b/pkg/kubelet/apis/deviceplugin/v1beta1/api.proto +@@ -73,6 +73,10 @@ message ListAndWatchResponse { + repeated Device devices = 1; + } + ++message TopologyInfo { ++ optional int32 socketID = 1 [default = -1]; ++} ++ + /* E.g: + * struct Device { + * ID: "GPU-fef8089b-4820-abfc-e83e-94318197576e", +@@ -85,6 +89,8 @@ message Device { + string ID = 1; + // Health of the device, can be healthy or unhealthy, see constants.go + string health = 2; ++ // Topology details of the device (optional.) ++ optional TopologyInfo topology = 3; + } +``` + +_Listing: Amended device plugin gRPC protocol._ + + -_Topology Manager hint provider registration._ +_Figure: Topology Manager hint provider registration._ - + -_Topology Manager fetches affinity from hint providers._ +_Figure: Topology Manager fetches affinity from hint providers._ # Graduation Criteria |
