Enhance troubleshooting guide for HAMi installation - #791
Conversation
✅ Deploy Preview for project-hami ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: RohiniVishu The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Important Review available on request
Reviews should be triggered manually for repositories with fewer than 10 stars. Select Trigger review above or comment ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@rootsongjc @windsonsea Please take a look! troubleshooting documented with commands and time, will share if required by maintainers |
Added troubleshooting sections for HAMi device plugin issues on GPU-less nodes and scheduler pod image pull failures. Signed-off-by: Rohini Vishu <rohinivishu@gmail.com> Signed-off-by: Rohini Vishu <200266036+RohiniVishu@users.noreply.github.com>
mesutoezdil
left a comment
There was a problem hiding this comment.
the checkhealthy analysis is solid and matches the linked mock-device-plugin issues. but the text needs a cleanup pass and the checks were not run: all four checklist boxes are empty, the docs health ci did not run, and lint would likely fail on the issues below. fixes #656 closes the lfx umbrella issue, use part of. no zh update and it is not noted.
| ### Diagnose the health gate | ||
|
|
||
| Check whether the count resource exists: | ||
| [code block 1 and 2] |
There was a problem hiding this comment.
editor leftover: [code block 1 and 2] renders as literal text, and later the page says by doing codeblock 1 and 2. remove both and just repeat the commands or link the section.
| ## HAMi device plugin fails on a GPU-less node | ||
|
|
||
| HAMi's standard installation expects supported accelerator hardware and the corresponding vendor runtime to be available on nodes where the real device plugin is scheduled. | ||
| Use `mock-device-plugin` when the goal is to test HAMi scheduling behavior without executing workloads on a physical accelerator.The mock plugin is intended for development/testing and does not provide actual GPU execution or GPU performance validation. |
There was a problem hiding this comment.
many missing spaces after periods in this pr: testing.The, host.A, hardware.This, environment.This, plus doesnt. one proofread pass please.
| CPU: Intel Core i3-5005U, 2 cores / 4 threads | ||
| GPU: Intel HD Graphics 5500 integrated graphics; no CUDA-capable discrete GPU | ||
| RAM: 16 GB | ||
| Cluster kind, single control-plane node |
There was a problem hiding this comment.
this environment block is tab separated plain text, not a markdown table, and the file ends with a stray --. format it as a real table.
|
|
||
| For that reason, this observation is recorded here for visibility rather than presented as a general HAMi failure with a universal workaround. | ||
|
|
||
| ### Solution: |
There was a problem hiding this comment.
heading has a trailing colon and space, markdownlint will flag it.
|
|
||
| ::: | ||
|
|
||
| ## HAMi device plugin fails on a GPU-less node |
Added troubleshooting documentation for HAMi installation and scheduler testing on GPU-less nodes, including the real NVIDIA device-plugin failure, the
mock-device-pluginhealth-check bootstrap issue, and an observed scheduler image-pull/TLS failure.What type of PR is this?
/kind documentation--
What this PR does / why we need it:
This PR updates documentation to enable HAMi development on GPU-less nodes by addressing mock device plugin health checks and providing troubleshooting for the real device plugin. Key findings include fixing mock-device-plugin bootstrap failures by seeding non-zero vendor count resources and documenting prerequisites for the real NVIDIA plugin.
Troubleshooting and the Workarounds around it:
The investigation was performed on a Fedora Linux machine with an Intel Core i3-5005U, Intel HD Graphics 5500 integrated graphics, 16 GB RAM, and a single-node
kindcluster running Kubernetes v1.36.1. HAMi charthami-charts/hamiwith imagedocker.io/projecthami/hami:v2.9.0was used, withmock-device-plugincloned frommainat the time of testing.The standard HAMi Quick Start exposed the following findings in detail:
1. Real HAMi device plugin fails on GPU-less nodes
On a node without a supported NVIDIA GPU and NVIDIA container runtime, the real device plugin entered
CrashLoopBackOffwith errors including:The troubleshooting documentation now explains that the real NVIDIA device plugin requires the corresponding host-side NVIDIA driver/runtime stack and that GPU-less contributors should use the mock device plugin for scheduler testing instead.
2.
mock-device-plugincan repeatedly report devices as unhealthyAfter deploying the official
mock-device-plugin, the DaemonSet ran but repeatedly logged:No corresponding GPU-related resources appeared in the node's
Allocatableresources. Source inspection traced this behavior toCheckHealthy()in:which checks whether the node already has a non-zero count resource in
node.Status.Capacity:The device implementation returns before registering resources when this check fails.This creates a bootstrap dependency on a fresh mock-only node:
This is documented as a testing workaround, not a production configuration or a code-level fix [it worked for me but must be tested with different hardware]
3. Scheduler pod image-pull/TLS failure observed during validation
During the same installation, the scheduler pod also entered
ImagePullBackOffwhile pulling:with:
The HAMi scheduler extender image from Docker Hub pulled successfully in the same environment. This failure was reproduced in the validation environment, but its broader scope is not established since it may be environment-specific, so the documentation records the observation and diagnostic commands without presenting it as a confirmed HAMi-wide issue or providing an unverified universal workaround. A separate investigation in
ipsitapp8/hami-placement-labidentified a different mock-device-plugin issue involving the scheduler node lock duringAllocate(). That issue occurs at a later stage, after device registration, and is separate from the registration/bootstrap problem documented here. This investigation independently reproduced the behavior on Fedora +kindand traced the bootstrap condition to theCheckHealthy()logic that occurs before it.docs/troubleshooting/troubleshooting.mdnow includes:Capacity,Allocatable, and registration annotations;Another thing observed: device health could be tracked independently of pre-existing node capacity rather than using
node.Status.Capacityas the bootstrap health gate. This was not implemented or tested in this documentation PR and is included only as a maintainer-facing observation for future code-level work.Which issue(s) this PR fixes:
Fixes #656
Related:
Checklist:
npm run lintandnpm run format:checkpassnpm run buildsucceeds for bothenandzhgit commit -s)