What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
To schedule a GPU workload on Kubernetes, a GPU node must have the vendor driver and a device plugin (or a configured Dynamic Resource Allocation driver) that advertises an extended resource such as nvidia.com/gpu. Request that resource in the container’s resources.limits, target nodes with labels or affinity when hardware matters, and cap aggregate namespace consumption with a ResourceQuota such as requests.nvidia.com/gpu: "4". CPU and memory remain separate resource dimensions and must be configured independently.
The device-plugin workflow is the most direct choice when a workload needs whole GPU devices. Kubernetes treats these extended resources as integer quantities, does not overcommit them, and will leave a Pod pending when no suitable node has an available device. Dynamic Resource Allocation (DRA) offers a more expressive claim-based model, but its objects, drivers, and feature availability depend on the Kubernetes release and cluster configuration.
What Kubernetes must know before it can schedule a GPU Pod
Kubernetes cannot assign a physical GPU merely because a node has one installed. The node must advertise that device as a schedulable resource. In the common device-plugin model, the hardware vendor’s driver exposes the GPU to the operating system and a device plugin registers an extended resource with the kubelet. The resource name is plugin-dependent; common examples include nvidia.com/gpu and amd.com/gpu.
Free tools Windows power users keep installed
One-click scans. No signup required.
Read the cluster’s advertised resource names rather than copying a name from another environment. Device-plugin registration and extended-resource behavior are described in the Kubernetes device-plugin documentation. A node that has no registered extended resource cannot satisfy a GPU request, regardless of its physical hardware.
#1 Best Overall
- Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
- With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
- Wide Application: attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
- Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
- Economical &Reusable: Built durable materials with a long-lasting battery,our CAGIWIRU air duster it's a sustainable alternative to disposable air cans.
Whole-device allocation, not automatic sharing
Device-plugin GPU resources are integer extended resources. A request for one represents one allocatable device (or one device unit as defined by the plugin); Kubernetes does not overcommit that resource. A basic request therefore does not mean that two Pods will transparently share the same GPU. Sharing, partitioning, time-slicing, or virtual-GPU behavior requires a plugin or allocation system that explicitly provides it.
Choose an allocation path
| Characteristic | Device-plugin extended resource | Dynamic Resource Allocation (DRA) |
|---|---|---|
| Typical fit | A straightforward request for whole GPU devices exposed by a vendor plugin. | Workloads needing claim-based selection or more expressive device attributes. |
| How a workload asks for a device | Container resource limits such as nvidia.com/gpu: 1. |
DRA device claims and resources defined by the cluster’s DRA driver. |
| Required cluster components | Vendor driver plus a compatible device plugin on GPU nodes. | A compatible DRA driver and the APIs and feature configuration supported by the deployed Kubernetes release. |
| Selection model | Scheduler matches an integer extended-resource request; node labels or affinity can constrain hardware. | Claims can express device requirements supported by the DRA driver. |
| Quota considerations | Extended-resource quota uses a requests. key, for example requests.nvidia.com/gpu. |
Quota and accounting depend on the DRA resource model and the Kubernetes version; verify the release-specific behavior. |
| Sharing behavior | Not overcommitted by Kubernetes; sharing is not implied. | Depends on the DRA driver and the device capabilities it exposes. |
The DRA API documentation and the extended-resource assignment documentation describe the current object model. Do not apply a DRA manifest to a cluster that only supports the device-plugin path, and do not assume that a DRA example written for one release works unchanged on another.
Step 1: Prepare and verify GPU nodes
- Install the hardware vendor’s driver. Use the driver supported by the GPU model, operating system, and kernel on the node. Kubernetes itself does not install or manage that driver.
- Deploy the matching device plugin. Run the plugin on every node that should advertise that vendor’s GPU resource. Follow the plugin’s deployment method and configuration for your environment.
- Check node capacity and allocatable values. Query the node after the plugin registers. For example:
kubectl get nodes kubectl describe node <gpu-node-name>In the description, inspect both
CapacityandAllocatablefor the exact extended-resource name, such asnvidia.com/gpu. - Confirm plugin health. Review the device-plugin Pod and node events if the resource is absent. A running plugin Pod does not prove that registration succeeded; the node’s allocatable section is the scheduling source of truth.
The official Schedule GPUs guide covers node preparation and GPU resource declarations. Repeat verification after node upgrades, driver changes, or plugin configuration changes because a node can remain physically equipped while temporarily advertising zero allocatable devices.
Step 2: Request a GPU in the Pod
For the device-plugin workflow, put the GPU resource under the container’s limits. This minimal declaration asks for one GPU:
apiVersion: v1
kind: Pod
metadata:
name: gpu-worker
spec:
restartPolicy: Never
containers:
- name: worker
image: your-registry/your-gpu-image:tag
resources:
limits:
nvidia.com/gpu: 1
command: ["/app/run-job"]
Replace nvidia.com/gpu with the resource name actually advertised by your cluster. Kubernetes documentation states: “You can specify GPU limits without specifying requests, because Kubernetes will use the limit as the request value by default.” The statement appears in Schedule GPUs.
If you specify both a GPU request and a GPU limit, they must be equal. Do not write a lower request and a higher limit to try to reserve one device while allowing two at runtime; extended GPU resources follow the equal-value rule. A limit-only declaration is usually clearer:
Rank #2
- Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
- Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
- Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
- Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
- Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
resources:
limits:
nvidia.com/gpu: 1
Multiple GPUs
Use an integer greater than one when the application genuinely needs multiple whole devices:
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteresources:
limits:
nvidia.com/gpu: 2
The scheduler looks for a single node whose allocatable capacity can satisfy the complete request. Kubernetes does not split a two-GPU request across two nodes. If the cluster has only one-GPU nodes, a two-GPU Pod remains unschedulable even when two GPUs are free in total.
CPU and memory are independent
A GPU count says nothing about CPU cores or memory. Set CPU and memory requests and limits according to the application and the capacity of the target nodes:
resources:
requests:
cpu: "2"
memory: "8Gi"
limits:
cpu: "4"
memory: "16Gi"
nvidia.com/gpu: 1
The scheduler evaluates all requested dimensions together. A node with a free GPU can still be rejected because it lacks the requested CPU or memory. Conversely, a CPU or memory request does not reserve a GPU.
Step 3: Direct the Pod to suitable GPU hardware
If every GPU node is interchangeable, the extended-resource request may be sufficient. Most clusters have meaningful differences, such as GPU generation, memory capacity, architecture, interconnect, or workload-specific capabilities. Use labels that accurately describe those differences and constrain placement with a node selector or node affinity.
Simple node selector
Assume your cluster administrators have labeled suitable nodes with accelerator.example.com/class: training. The label key and value are examples; use labels that actually exist in your cluster:
Rank #3
- 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
- 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
- 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
- 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
- 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.
spec:
nodeSelector:
accelerator.example.com/class: training
containers:
- name: worker
image: your-registry/your-gpu-image:tag
resources:
limits:
nvidia.com/gpu: 1
A selector is an exact match. If no node has that label, the Pod cannot schedule, even if other nodes advertise GPUs.
Node affinity for alternatives or stronger rules
Node affinity lets you express multiple acceptable hardware classes or make a preference rather than an absolute requirement:
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: accelerator.example.com/class
operator: In
values:
- training
- inference
containers:
- name: worker
image: your-registry/your-gpu-image:tag
resources:
limits:
nvidia.com/gpu: 1
Use labels that reflect tested capabilities, not a vague “GPU present” marker, when the application depends on a particular class. Node Feature Discovery can automate hardware discovery and labeling; evaluate its labels and versioned behavior in your own cluster before making them a scheduling contract.
Step 4: Cap GPU consumption with a namespace ResourceQuota
A ResourceQuota limits aggregate consumption in a namespace. For four NVIDIA GPUs, the official quota syntax is:
apiVersion: v1
kind: ResourceQuota
metadata:
name: gpu-quota
namespace: ml-workloads
spec:
hard:
requests.nvidia.com/gpu: "4"
Apply it with:
kubectl apply -f gpu-quota.yaml
For extended resources, quota keys use the requests. prefix. The resource portion after that prefix must match the name advertised by your plugin. Thus an AMD resource would use the corresponding advertised name, not the NVIDIA example.
The value "4" is an aggregate ceiling for GPU requests in that namespace, not a guarantee that four devices are physically available. Four one-GPU Pods can consume the quota; one four-GPU Pod can consume it all. A new or updated Pod whose total requested GPU count would exceed the hard quota is rejected at admission, even if a node happens to have an idle GPU.
Rank #4
- 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
- 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
- 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
- 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
- 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
Inspect quota usage and headroom
kubectl get resourcequota -n ml-workloads
kubectl describe resourcequota gpu-quota -n ml-workloads
Check the Used and Hard values for the exact extended-resource key. Quota accounting and scheduler capacity are separate checks: a Pod needs both namespace headroom and a suitable node with allocatable capacity.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitchesWhat happens when a Pod is deleted
Quota usage falls when the API server no longer counts the requesting object. If a workload is managed by a Deployment, Job, or another controller, deleting a Pod may cause its controller to create a replacement, so the namespace can appear to retain the same GPU usage. Inspect the owning workload before concluding that quota accounting is stuck.
Configure CPU and memory quotas separately
GPU quota does not automatically constrain CPU or memory. If the namespace also has CPU or memory quota, it may define keys such as requests.cpu, limits.cpu, requests.memory, or limits.memory. The exact keys and enforcement depend on the quota object installed by your administrators.
Some quota configurations require every incoming container to specify the corresponding request or limit. A GPU-only manifest can therefore be rejected even though its GPU declaration is valid. Set explicit CPU and memory values when those quotas are present, and make sure the values fit both the quota’s remaining headroom and the target nodes’ allocatable capacity.
apiVersion: v1
kind: ResourceQuota
metadata:
name: compute-quota
namespace: ml-workloads
spec:
hard:
requests.cpu: "32"
requests.memory: 128Gi
limits.cpu: "64"
limits.memory: 256Gi
The example illustrates separate dimensions; choose limits that reflect your policy rather than copying these quantities. A namespace can have enough GPU quota but insufficient CPU quota, or vice versa.
Recommended Free Tools
Apply and verify the complete configuration
- Apply the quota before workloads.
kubectl apply -f gpu-quota.yaml - Apply the Pod or its controller.
kubectl apply -f gpu-worker.yaml - Check phase and assigned node.
kubectl get pod gpu-worker -n ml-workloads -o wideA successful placement shows a node name and a
Runningor completed phase appropriate to the workload. - Read events when placement fails.
kubectl describe pod gpu-worker -n ml-workloadsReview the events at the bottom for messages about insufficient extended resources, node-selector mismatch, taints, CPU or memory shortages, or quota admission.
- Recheck the node.
kubectl describe node <assigned-node-name>Confirm that allocatable GPU capacity decreased by the Pod’s request and that the resource name is exactly the one used in the manifest.
- Inspect quota after admission.
kubectl describe resourcequota gpu-quota -n ml-workloadsCompare current usage with the hard limit before launching additional replicas.
Admission rejection and scheduling failure are different. A quota violation prevents the object from being admitted; an admitted Pod can remain Pending because no node satisfies its GPU, CPU, memory, selector, affinity, taint, or other constraints.
Best Value
- 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
- 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
- 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
- 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
- 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
Troubleshoot common failures
| Symptom | Likely cause | Checks and corrective action |
|---|---|---|
| Pod is rejected immediately with a quota message. | The namespace’s aggregate GPU request would exceed its hard quota, or a CPU/memory quota requires values that are missing. | Run kubectl describe resourcequota <name> -n <namespace>. Reduce replicas or per-Pod requests, remove finished workloads, or request a policy change from the namespace administrator. Add required CPU and memory requests or limits. |
| Pod remains Pending with insufficient GPU. | No node has enough allocatable capacity for the requested integer resource. | Inspect node capacity and allocatable values. Remember that a multi-GPU request must fit on one node. Wait for devices to be released, target a larger GPU node, or reduce the request if the application allows it. |
| Pod remains Pending despite free GPUs elsewhere. | Node selector or affinity excludes those nodes, or another requested dimension is unavailable. | Compare the Pod’s selector and affinity with node labels. Check CPU, memory, taints, and tolerations in the Pod events. Remove only constraints that are not required by the workload. |
| The GPU resource is absent from node output. | Driver failure, device-plugin failure, registration error, or a plugin that does not support the installed hardware. | Inspect the plugin Pod logs and node events, verify the driver on the host, and confirm that the plugin is scheduled on the intended nodes. Do not troubleshoot the Pod manifest until the node advertises the resource. |
| The manifest uses a familiar resource name but never schedules. | The cluster advertises a different vendor or plugin-specific name. | Copy the exact extended-resource key from kubectl describe node and use that key in the container limit and quota. |
| A Pod starts but the application cannot use the GPU. | The container image, runtime integration, driver compatibility, or application configuration is incorrect. | Check container logs and the vendor’s runtime requirements. Kubernetes scheduling only allocates the device; it does not make an arbitrary image GPU-aware. |
Designing quotas for teams and workloads
Use a quota that matches the unit of allocation
Set the hard value in whole devices when the plugin exposes whole GPUs. If one training job needs four devices and inference jobs need one each, a quota of four permits either one training job or four one-device jobs, subject to node capacity and any other policy. Quota does not reserve a particular model or node class.
Separate namespaces when policies differ
ResourceQuota is namespace-scoped. If training and inference need different ceilings, place them in namespaces with separate quotas rather than trying to express unrelated policies in one aggregate number. Pair those quotas with node labels and affinity so a namespace’s permitted GPU count is not confused with hardware suitability.
Plan for controllers and retries
Deployments, Jobs, and other controllers create Pods according to their desired state. A failed or completed Pod may be replaced, and a retry can consume quota as soon as it is admitted. Monitor both controller replica settings and quota usage when debugging sudden admission failures.
When DRA is the better fit
DRA is intended for device allocation through claims rather than only a scalar extended-resource limit. It can represent device attributes and allocation decisions that a basic integer request cannot. Whether a cluster can use DRA depends on its Kubernetes release, enabled features, API versions, and an installed DRA driver.
Before adopting DRA, verify all of the following against the documentation for the version you operate:
- The DRA API objects and fields available in that release.
- Required feature gates or other control-plane configuration.
- A DRA driver that supports the GPU hardware and the device properties your workload needs.
- How the scheduler, kubelet, and runtime receive the resulting device allocation.
- How your cluster’s quota and admission policies account for the claimed resource.
Keep DRA manifests separate from device-plugin manifests during a migration. A Pod written for one allocation path is not automatically portable to the other, and a DRA driver may expose capabilities that have no equivalent in a simple nvidia.com/gpu limit.
Security, reliability, and operational checks
- Use trusted images and drivers. A scheduled GPU is still a host device exposed to a container runtime; enforce the same image, admission, and privilege policies used for other workloads.
- Make labels authoritative. Document who owns hardware labels and how they are updated when a node is reprovisioned. Stale labels can send a workload to hardware that no longer meets its requirements.
- Keep requests honest. Overstating CPU or memory can strand GPU capacity; understating them can cause contention or quota exhaustion patterns that are difficult to diagnose.
- Observe both layers. Alert on node allocatable GPU changes, plugin health, pending GPU Pods, and namespace quota utilization. A healthy quota does not prove that a device is available, and a healthy node does not prove that a namespace is allowed to claim it.
- Test upgrades in a representative namespace. Driver, plugin, Kubernetes, and DRA changes can alter resource names, registration, or allocation behavior. Validate node advertisement, admission, and a real GPU workload before changing every node.
Reference manifests
The following pair shows the basic device-plugin pattern with an explicit namespace, a four-GPU quota, node targeting, and independent CPU and memory values. Replace the image, labels, and resource name with values proven in your cluster.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →apiVersion: v1
kind: ResourceQuota
metadata:
name: gpu-quota
namespace: ml-workloads
spec:
hard:
requests.nvidia.com/gpu: "4"
---
apiVersion: v1
kind: Pod
metadata:
name: gpu-worker
namespace: ml-workloads
spec:
restartPolicy: Never
nodeSelector:
accelerator.example.com/class: training
containers:
- name: worker
image: your-registry/your-gpu-image:tag
command: ["/app/run-job"]
resources:
requests:
cpu: "2"
memory: "8Gi"
limits:
cpu: "4"
memory: "16Gi"
nvidia.com/gpu: 1
Apply the quota first, then the workload, and verify admission, node placement, allocatable capacity, and quota usage. If any one of those checks fails, fix that layer before changing the others.
Quick Recap
Further reading
- Kubernetes: Schedule GPUs
- Kubernetes: Device Plugins
- Kubernetes: Resource Quotas
- Kubernetes: DRA API Objects
- Kubernetes: Assign Extended Resources to a Container
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

