# AKS VM Size Restrictions

## Issue Encountered

**Error**: `Standard_B1ms` is restricted by AKS
```
The VM SKUs chosen for agentpool(s) `AgentPoolProfile:validators` are restricted by AKS. 
This is typically due to small CPU/Memory.
```

## AKS Minimum Requirements

### CPU Requirements
- **Minimum**: 2 vCPUs per node pool
- **Recommended**: Standard_D2s_v3 or larger
- **B-series minimum**: Standard_B2s (2 vCPUs, 4GB RAM)

### Memory Requirements
- **Minimum**: 4GB RAM per node
- **Recommended**: 8GB RAM or more

## Restricted VM Sizes

### B-series Restrictions
- ❌ **Standard_B1s**: 1 vCPU, 1GB RAM - **RESTRICTED**
- ❌ **Standard_B1ms**: 1 vCPU, 2GB RAM - **RESTRICTED**
- ✅ **Standard_B2s**: 2 vCPUs, 4GB RAM - **ALLOWED**
- ✅ **Standard_B2ms**: 2 vCPUs, 8GB RAM - **ALLOWED**

### D-series Restrictions
- ❌ **Standard_D1s_v3**: 1 vCPU, 4GB RAM - May be restricted
- ✅ **Standard_D2s_v3**: 2 vCPUs, 8GB RAM - **ALLOWED**

## Solution Applied

### Updated Configuration
- **Validators**: 1 × Standard_B2s (2 vCPUs, 4GB RAM)
- **Total vCPUs**: 2 (fits within 4 available)
- **Cost**: ~$0.0208/hour (~$15/month)
- **AKS-compatible**: ✅ Yes

### Resource Allocation
- **System**: 3 × Standard_D2s_v3 = 6 vCPUs
- **Validators**: 1 × Standard_B2s = 2 vCPUs
- **Total**: 8 vCPUs (within 10 limit)

## Alternative Options

### If Need More Validators (After Quota Increase)
- **Option 1**: 2 × Standard_B2s = 4 vCPUs
- **Option 2**: 1 × Standard_D2s_v3 = 2 vCPUs (more expensive)
- **Option 3**: Multiple pools with different sizes

### Cost Comparison
- **Standard_B2s**: ~$0.0208/hour (~$15/month) ✅ Current
- **Standard_B2ms**: ~$0.0416/hour (~$30/month)
- **Standard_D2s_v3**: ~$0.096/hour (~$70/month)

## References

- [AKS Restricted VM Sizes](https://aka.ms/aks/restricted-skus)
- [Azure VM Sizes](https://docs.microsoft.com/azure/virtual-machines/sizes)
- [AKS Node Pools](https://docs.microsoft.com/azure/aks/use-multiple-node-pools)
