You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/concepts/cluster-administration/device-plugins.md
+76-51
Original file line number
Diff line number
Diff line change
@@ -3,52 +3,65 @@ approvers:
3
3
title: Device Plugins
4
4
---
5
5
6
-
* TOC
7
-
{:toc}
6
+
{% include feature-state-alpha.md %}
8
7
9
-
__Disclaimer__: Device plugins are in alpha. Its contents may change rapidly.
10
-
11
-
Starting from 1.8 release, Kubernetes provides a [device plugin framework](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/device-plugin.md)
12
-
for vendors to advertise their resources to Kubelet without changing Kubernetes core code.
8
+
{% capture overview %}
9
+
Starting in version 1.8, Kubernetes provides a [device plugin framework](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/device-plugin.md)
10
+
for vendors to advertise their resources to the kubelet without changing Kubernetes core code.
13
11
Instead of writing custom Kubernetes code, vendors can implement a device plugin that can
14
12
be deployed as a DaemonSet or in bare metal mode. The targeted devices include GPUs,
15
13
High-performance NICs, FPGAs, InfiniBand, and other similar computing resources
16
14
that may require vendor specific initialization and setup.
15
+
{% endcapture %}
16
+
17
+
{% capture body %}
18
+
19
+
## Device plugin registration
20
+
21
+
The device plugins feature is gated by the `DevicePlugins` feature gate and is disabled by default.
22
+
When the device plugins feature is enabled, the kubelet exports a `Registration` gRPC service:
17
23
18
-
## Overview
19
-
The 1.8 Kubernetes release supports device plugin as an alpha feature that
20
-
is gated by DevicePlugins feature gate and is disabled by default.
21
-
When the DevicePlugins feature is enabled, Kubelet will export a `Registration` gRPC service:
22
24
```gRPC
23
25
service Registration {
24
26
rpc Register(RegisterRequest) returns (Empty) {}
25
27
}
26
28
```
27
-
A device plugin can register itself to Kubelet through this gRPC service.
28
-
During the registration, the device plugin needs to send
29
-
* The name of their unix socket
30
-
* The API version against which they were built
31
-
* The `ResourceName` they want to advertise. Here `ResourceName` needs to follow
32
-
the [extended resource naming scheme](https://github.com/kubernetes/kubernetes/pull/48922) as `vendor-domain/resource`.
33
-
E.g., Nvidia GPUs are advertised as `nvidia.com/gpu`
34
-
35
-
Following a successful registration, the device plugin will send Kubelet the
36
-
list of devices it manages, and Kubelet will be in charge of advertising those
37
-
resources to the API server as part of the Kubelet node status update.
38
-
E.g., after a device plugin registers `vendor-domain/foo` with Kubelet
39
-
and reports two healthy devices on a node, the node status will be updated
29
+
A device plugin can register itself with the kubelet through this gRPC service.
30
+
During the registration, the device plugin needs to send:
31
+
32
+
* The name of its Unix socket.
33
+
* The API version against which it was built.
34
+
* The `ResourceName` it wants to advertise. Here `ResourceName` needs to follow the
For an example device plugin implementation, please check
108
+
For an example device plugin implementation, see
88
109
[nvidia GPU device plugin for COS base OS](https://github.com/GoogleCloudPlatform/container-engine-accelerators/tree/master/nvidia_gpu).
0 commit comments