Skip to content

Commit 2c0d450

Browse files
authored
Merge pull request #51731 from Jpsassine/dra-health-docs
docs(DRA): Document device health monitoring in PodStatus
2 parents c9c93e1 + 6218cef commit 2c0d450

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
@@ -310,6 +310,7 @@ following methods:
310310

311311
* [kubelet device metrics](#monitoring-resources)
312312
* [ResourceClaim status](#resourceclaim-device-status)
313+
* [Device health monitoring](#device-health-monitoring)
313314

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

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

347+
### Device Health Monitoring {#device-health-monitoring}
348+
349+
{{< feature-state feature_gate_name="ResourceHealthStatus" >}}
350+
351+
As an alpha feature, Kubernetes provides a mechanism for monitoring and reporting the health of dynamically allocated infrastructure resources.
352+
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.
353+
354+
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.
355+
356+
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 the `allocatedResourcesStatus` field in the status of each container, detailing the health of each device assigned to that container.
357+
358+
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.
359+
346360
## Pre-scheduled Pods
347361

348362
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)