Resolving Azure Quota Limits for AKS Deployment
Issue
Terraform deployment failed at the AKS cluster creation stage due to insufficient vCPU quota for B-series VMs in the eastus region. Despite successful deployment of other resources (networking, ACR, Azure OpenAI), the system blocked AKS provisioning with a quota-exceeded error, halting the entire infrastructure deployment.
Culprit
Azure imposes default vCPU quotas per region and VM family. The subscription lacked allocated quota for B-series VMs (burstable instances), which are cost-effective for Kubernetes workloads. The configuration specified 2 B2s VMs (4 vCPUs total), but the subscription’s quota was 0 vCPUs for B-series, causing the deployment to fail with:
- Error Message:
QuotaExceededfor regional vCPU limits. - Root Cause: Quotas are not automatically allocated for all VM families; B-series often requires manual approval.
Solution
Three approaches were implemented:
1. Immediate Workaround (Non-Kubernetes)
Temporarily deployed the MCP server on Azure Container Instances (ACI) to bypass quota constraints. This provided full functionality (Azure OpenAI embeddings, networking) without requiring AKS-specific resources.
- Tradeoff: No Kubernetes scalability but immediate availability.
- Cost: Comparable to AKS with B-series VMs (~$10-20/month).
2. Permanent Fix (Quota Request)
- Requested a quota increase via the Azure Portal for 4 vCPUs (2 B2s VMs) in the
eastusregion. - Approval Time: 1-3 business days (Microsoft SLA).
- Outcome: Once approved, Terraform successfully deployed the AKS cluster with B-series VMs.
3. Alternative SKU Fallback
Modified the configuration to use D-series VMs (immediately available) as a backup. This resolved the quota issue at the cost of higher pricing (~2x monthly cost).
- Use Case: Short-term fallback during quota processing.
Validation
Post-resolution, the deployment verified:
- AKS cluster operational with healthy nodes.
- Azure OpenAI embeddings generating 1536-dimensional vectors in under 300ms.
- Total monthly cost under budget ($82/month, including AKS and OpenAI).
Key Takeaways:
- Always check Azure quota limits for non-default VM families (e.g., B-series).
- ACI is a viable temporary solution for quota-constrained deployments.
- D-series VMs serve as a fallback for immediate availability.