Kubernetes Storage

Kubernetes Storage An architecture diagram generated by Archify. Pod 1 · uses pvc-1 · Kubernetes Cluster › User Namespace Pod 1 uses pvc-1 Pod 2 · uses pvc-2 · Kubernetes Cluster › User Namespace Pod 2 uses pvc-2 PersistentVolumeClaim · pvc-1 · 8Gi request · Kubernetes Cluster › User Namespace PersistentVolumeClaim pvc-1 · 8Gi request PersistentVolumeClaim · pvc-2 · 5Gi request · Kubernetes Cluster › User Namespace PersistentVolumeClaim pvc-2 · 5Gi request StorageClass · standard · defines provisioning · Kubernetes Cluster › Storage Resources StorageClass standard · defines provisioning PersistentVolume · pv-1 · 10Gi · Kubernetes Cluster › Storage Resources PersistentVolume pv-1 · 10Gi PersistentVolume · pv-2 · 20Gi · Kubernetes Cluster › Storage Resources PersistentVolume pv-2 · 20Gi PersistentVolume · pv-3 · 5Gi · Kubernetes Cluster › Storage Resources PersistentVolume pv-3 · 5Gi AWS EBS Volume · vol-1 · External Storage AWS EBS Volume vol-1 AWS EBS Volume · vol-2 · External Storage AWS EBS Volume vol-2 AWS EBS Volume · vol-3 · External Storage AWS EBS Volume vol-3 claimName binding binding dynamic provisioning volumeID Kubernetes Cluster User Namespace Storage Resources External Storage Legend User resources Storage resources External storage

Storage resources

  • • The StorageClass (standard) defines how volumes are provisioned
  • • A PersistentVolume is a storage resource in the cluster that exists independently of pods
  • • Dashed arrows show dynamic provisioning by the StorageClass

User resources

  • • A PersistentVolumeClaim is a user's storage request
  • • Pods access PVs through PVCs (pvc-1 8Gi → pv-1 10Gi, pvc-2 5Gi → pv-3 5Gi)
  • • pv-2 (20Gi) has no claim and remains unbound

External storage

  • • Each PV is backed by an AWS EBS volume (vol-1, vol-2, vol-3) outside the cluster