Skip to main content

Azure Deployment Guide (AKS)

Complete guide for deploying StateSet Sandbox on Azure Kubernetes Service (AKS).

Prerequisites

  • Azure CLI configured with appropriate permissions
  • kubectl installed
  • Helm 3.x installed
  • Domain name for API endpoint
  • Azure subscription with required resource providers enabled

Quick Start (Kustomize Overlay)

Use the Azure-specific overlay to apply the correct ingress/controller defaults:
For smoke checks, export credentials before running deploy:
Before applying the overlay, provision the required controller auth secret:
Before applying, update the Azure SAS token secret:

Architecture Overview

Step 1: Set Up Azure Environment

Step 2: Create Virtual Network

Step 3: Create Azure Container Registry

Step 4: Create AKS Cluster

Alternative: gVisor Node Pool

If you prefer gVisor over Kata:

Step 5: Create Azure Database for PostgreSQL

Step 6: Create Azure Cache for Redis

Step 7: Create Azure Blob Storage

Step 8: Create Azure Key Vault

Step 9: Configure Workload Identity

Step 10: Deploy StateSet Sandbox

Create Namespace

Configure Service Account with Workload Identity

Install CSI Secrets Store Driver

Create SecretProviderClass

Create ConfigMap

Update Deployment for Azure

Deploy Components

Create Kata RuntimeClass

Step 11: Configure Application Gateway Ingress

Option A: Application Gateway Ingress Controller (AGIC)

Option B: NGINX Ingress Controller

Configure TLS Certificate

Step 12: Set Up Monitoring

Azure Monitor for Containers

Already enabled during cluster creation. Configure additional monitoring:

Log Analytics Queries

Create Azure Alerts

Prometheus & Grafana (Optional)

Step 13: Configure Autoscaling

Cluster Autoscaler

Already enabled on sandbox node pool. Configure behavior:

Horizontal Pod Autoscaler

KEDA (Event-Driven Autoscaling)

Security Hardening

Azure Policy for AKS

Microsoft Defender for Containers

Private Endpoints

Confidential Computing (Optional)

For maximum isolation with Confidential VMs:

Cost Optimization

Azure Reserved Instances

Purchase reserved capacity for predictable workloads:

Spot VMs for Sandbox Nodes

Estimated Monthly Costs

Troubleshooting

Common Issues

Pod identity not working
Database connection issues
Kata containers not working

Useful Commands

Support Resources