Azure Kubernetes Service Documentation

Storage Concepts in Azure Kubernetes Service (AKS)

AKS provides a robust set of storage options that enable you to persist data for stateful applications running in containers. This guide covers the core concepts, best practices, and implementation details for using storage in AKS.

1. Persistent Volumes (PV) & Persistent Volume Claims (PVC)

A PersistentVolume represents a piece of storage in the cluster that has been provisioned by an administrator or dynamically provisioned using a StorageClass. A PersistentVolumeClaim is a request for storage by a user.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: azurefile-pvc
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: azurefile
  resources:
    requests:
      storage: 10Gi

2. Storage Classes

Storage classes define the type of underlying storage Azure provides. AKS includes several built‑in classes, and you can create custom classes for specific performance or replication requirements.

NameProvisionerFeatures
defaultkubernetes.io/azure-diskStandard SSD, ZRS support
azurefilekubernetes.io/azure-fileSMB, ReadWriteMany
managed-premiumdisk.csi.azure.comPremium SSD, high IOPS

3. Container Storage Interface (CSI) Drivers

AKS uses CSI drivers to integrate Azure storage services natively. The most common drivers are:

4. Data Protection & Backup

To protect stateful workloads, consider the following strategies:

5. Best Practices

  1. Prefer ReadWriteOnce for performance‑critical workloads.
  2. Use ReadWriteMany (Azure Files) only when multiple pods need concurrent access.
  3. Tag your resources for cost tracking and lifecycle management.
  4. Configure pod anti‑affinity to distribute stateful pods across nodes for resilience.

For detailed step‑by‑step tutorials, visit the AKS tutorials section.