Skip to content

Commit 99fff25

Browse files
committed
docs(DRA): Document device health monitoring in PodStatus
This commit adds documentation for the Dynamic Resource Allocation (DRA) portion of KEP-4680, which was implemented in kubernetes/kubernetes#130606. The following changes are included: - A new "Device Health Monitoring" section is added to the main DRA concepts page. This section explains how the `ResourceHealthStatus` feature gate and the new `DRAResourceHealth` gRPC service enable device health reporting in the `pod.status`. - The documentation for the `ResourceHealthStatus` feature gate is updated to clarify that it applies to both Device Plugins and Dynamic Resource Allocation. This aligns with the documentation requirements for graduating the DRA implementation of KEP-4680 to Alpha. KEP: kubernetes/enhancements#4680
1 parent 8255f3f commit 99fff25

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

content/en/docs/concepts/scheduling-eviction/dynamic-resource-allocation.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,7 @@ following methods:
311311

312312
* [kubelet device metrics](#monitoring-resources)
313313
* [ResourceClaim status](#resourceclaim-device-status)
314+
* [Device health monitoring](#device-health-monitoring)
314315

315316
### kubelet device metrics {#monitoring-resources}
316317

@@ -344,6 +345,19 @@ set.
344345
For details about the `status.devices` field, see the
345346
{{< api-reference page="workload-resources/resource-claim-v1beta1" anchor="ResourceClaimStatus" text="ResourceClaim" >}} API reference.
346347

348+
### Device Health Monitoring {#device-health-monitoring}
349+
350+
{{< feature-state feature_gate_name="ResourceHealthStatus" >}}
351+
352+
As an alpha feature, Kubernetes provides a mechanism for monitoring and reporting the health of dynamically allocated infrastructure resources.
353+
For stateful applications running on specialized hardware, it is critical to know when a device has failed or become unhealthy. It is also helpful to find out if the device recovers.
354+
355+
To enable this functionality, the `ResourceHealthStatus` [feature gate](/docs/reference/command-line-tools-reference/feature-gates/resource-health-status/) must be enabled, and the DRA driver must implement the `DRAResourceHealth` gRPC service.
356+
357+
When a DRA driver detects that an allocated device has become unhealthy, it reports this status back to the kubelet. This health information is then exposed directly in the Pod's status. The kubelet populates `allocatedResourcesStatus` field in the status of each container, detailing the health of each device assigned to that container.
358+
359+
This provides crucial visibility for users and controllers to react to hardware failures. For a Pod that is failing, you can inspect this status to determine if the failure was related to an unhealthy device.
360+
347361
## Pre-scheduled Pods
348362

349363
When you - or another API client - create a Pod with `spec.nodeName` already set, the scheduler gets bypassed.

content/en/docs/reference/command-line-tools-reference/feature-gates/ResourceHealthStatus.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,5 @@ stages:
1313
Enable the `allocatedResourcesStatus` field within the `.status` for a Pod. The field
1414
reports additional details for each container in the Pod,
1515
with the health information for each device assigned to the Pod.
16-
See [Device plugin and unhealthy devices](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/#device-plugin-and-unhealthy-devices) for more details.
16+
17+
This feature applies to devices managed by both [Device Plugins](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/#device-plugin-and-unhealthy-devices) and [Dynamic Resource Allocation](/docs/concepts/scheduling-eviction/dynamic-resource-allocation/#device-health-monitoring). See [Device plugin and unhealthy devices](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/#device-plugin-and-unhealthy-devices) for more details.

0 commit comments

Comments
 (0)