Merge pull request #36940 from swatisehgal/doc-deviceplugin-strict-ordering
doc: capture device-plugin stricter workflow ordering explicitly
This commit is contained in:
commit
b3ed6e6d81
|
|
@ -87,10 +87,10 @@ spec:
|
|||
|
||||
The general workflow of a device plugin includes the following steps:
|
||||
|
||||
* Initialization. During this phase, the device plugin performs vendor specific
|
||||
1. Initialization. During this phase, the device plugin performs vendor-specific
|
||||
initialization and setup to make sure the devices are in a ready state.
|
||||
|
||||
* The plugin starts a gRPC service, with a Unix socket under host path
|
||||
1. The plugin starts a gRPC service, with a Unix socket under the host path
|
||||
`/var/lib/kubelet/device-plugins/`, that implements the following interfaces:
|
||||
|
||||
```gRPC
|
||||
|
|
@ -124,17 +124,22 @@ The general workflow of a device plugin includes the following steps:
|
|||
|
||||
{{< note >}}
|
||||
Plugins are not required to provide useful implementations for
|
||||
`GetPreferredAllocation()` or `PreStartContainer()`. Flags indicating which
|
||||
(if any) of these calls are available should be set in the `DevicePluginOptions`
|
||||
`GetPreferredAllocation()` or `PreStartContainer()`. Flags indicating
|
||||
the availability of these calls, if any, should be set in the `DevicePluginOptions`
|
||||
message sent back by a call to `GetDevicePluginOptions()`. The `kubelet` will
|
||||
always call `GetDevicePluginOptions()` to see which optional functions are
|
||||
available, before calling any of them directly.
|
||||
{{< /note >}}
|
||||
|
||||
* The plugin registers itself with the kubelet through the Unix socket at host
|
||||
1. The plugin registers itself with the kubelet through the Unix socket at host
|
||||
path `/var/lib/kubelet/device-plugins/kubelet.sock`.
|
||||
|
||||
* After successfully registering itself, the device plugin runs in serving mode, during which it keeps
|
||||
{{< note >}}
|
||||
The ordering of the workflow is important. A plugin MUST start serving gRPC
|
||||
service before registering itself with kubelet for successful registration.
|
||||
{{< /note >}}
|
||||
|
||||
1. After successfully registering itself, the device plugin runs in serving mode, during which it keeps
|
||||
monitoring device health and reports back to the kubelet upon any device state changes.
|
||||
It is also responsible for serving `Allocate` gRPC requests. During `Allocate`, the device plugin may
|
||||
do device-specific preparation; for example, GPU cleanup or QRNG initialization.
|
||||
|
|
|
|||
Loading…
Reference in New Issue