Azure Kubernetes Service Gains Dynamic Resource Allocation for NVIDIA vGPU Workloads
Microsoft has enhanced the Azure Kubernetes Service (AKS) with support for Dynamic Resource Allocation (DRA) alongside NVIDIA vGPU technology, offering improved control and efficiency for shared GPU utilization in artificial intelligence (AI) and media processing tasks. InfoQ reports this update marks a significant step towards more flexible and optimized GPU management within Kubernetes environments.
The Shift to Dynamic Resource Allocation
DRA is now the standard method for GPU resource management in Kubernetes. Instead of relying on static resource definitions like nvidia.com/gpu, GPUs are dynamically allocated through DeviceClasses and ResourceClaims. This approach enhances scheduling capabilities and streamlines integration with virtualization technologies such as NVIDIA vGPU. AKS Blog
Benefits of NVIDIA vGPU and DRA Combination
Virtual accelerators like NVIDIA vGPU are particularly well-suited for smaller workloads, enabling a single physical GPU to be partitioned and shared among multiple users or applications. This is advantageous for enterprise AI/ML development, model fine-tuning, and audio/visual processing, providing predictable performance while maintaining CUDA capabilities within containerized workloads. AKS Blog
Infrastructure Requirements and Setup
This functionality is built upon Azure’s NVadsA10_v5 virtual machine series. VGPU technology partitions the GPU into fixed-size slices at the hypervisor level, presenting each virtual machine with a single, clear GPU device. The hypervisor manages capacity and memory limits, rather than the software layer. InfoQ
Implementation requires Kubernetes version 1.34 or newer, enabling the use of DRA primitives like deviceclasses and resourceslices. Teams deploying this setup will need to provision a node pool with NVadsA10_v5 instances and apply a label (nvidia.com/gpu.present=true) for the NVIDIA DRA kubelet plugin. The NVIDIA DRA driver is then deployed via Helm. AKS Blog
Key Helm Flags for vGPU Scenarios
The deployment process involves specific Helm flags to ensure compatibility. The gpuResourcesEnabledOverride=true flag bypasses a check that prevents the NVIDIA DRA driver from installing alongside the legacy device plugin due to differing GPU names. Setting FeatureGates.IMEXDaemonsWithDNSNames=false disables an IMEX feature that requires a newer GRID driver version than currently supported on the A10 series in Azure. InfoQ
Verification and Available Profiles
Once the driver is active, it scans each node, detects the vGPU device, and registers it with the Kubernetes control plane as a DRA-managed device. Operators can verify the setup by examining the gpu.nvidia.com DeviceClass and ResourceSlices. AKS Blog
The NVadsA10_v5 series offers various profiles, including a one-sixth slice (Standard_NV6ads_A10_v5), a one-third profile with 8 GB of accelerator memory, and a one-half profile with 12 GB. Limits are enforced at the hypervisor level, providing predictable capacity. InfoQ
Broader Implications and Industry Trends
Microsoft positions this advancement as a directional shift, aligning with the growing trend of treating GPUs as first-class resources in Kubernetes. Combining virtualized GPUs with DRA offers a practical solution for running shared, production-grade workloads, particularly in large-scale AKS deployments within regulated or cost-sensitive industries. InfoQ
Google Cloud (GKE) and Amazon EKS are also pursuing similar strategies with DRA, though with slightly different approaches. Google focuses on DRA as a scheduling primitive for both GPUs and TPUs, while Amazon EKS utilizes DRA to simplify the complexity of its high-end GPU hardware. InfoQ
Important Note Regarding Azure Linux 2.0
As of November 30, 2025, Azure Kubernetes Service (AKS) no longer supports or provides security updates for Azure Linux 2.0. Node images will be removed on March 31, 2026. Users are advised to migrate to a supported Azure Linux version by upgrading node pools or migrating to osSku AzureLinux3. Azure Documentation
Worth a look