Storage

Storage View

The Storage View provides management of Kubernetes storage resources including Persistent Volumes, Persistent Volume Claims, and Storage Classes.

Overview

Navigate to Workloads > Storage to access:

  • Persistent Volumes - Cluster-wide storage resources
  • Persistent Volume Claims - Storage requests by pods
  • Storage Classes - Storage provisioning templates

Persistent Volumes (PV)

Persistent Volumes are cluster-level storage resources provisioned by administrators or dynamically through Storage Classes.

Viewing Persistent Volumes

Navigate to Workloads > Storage > Persistent Volumes.

ColumnDescription
NamePV name
CapacityStorage size (e.g., 10Gi)
Access ModesRWO, ROX, RWX
Reclaim PolicyRetain, Delete, Recycle
StatusAvailable, Bound, Released, Failed
ClaimBound PVC name
Storage ClassAssociated storage class
AgeTime since creation
Persistent Volumes list view

Access Modes

ModeDescription
RWOReadWriteOnce - Single node read-write
ROXReadOnlyMany - Multiple nodes read-only
RWXReadWriteMany - Multiple nodes read-write

Reclaim Policies

PolicyDescription
RetainManual reclamation after PVC deletion
DeleteAutomatically delete PV when PVC is deleted
RecycleBasic scrub (deprecated)

PV Status

StatusDescription
AvailableReady to be bound to a PVC
BoundCurrently bound to a PVC
ReleasedPVC deleted, awaiting reclamation
FailedAutomatic reclamation failed

Persistent Volume Claims (PVC)

PVCs are requests for storage by pods. They consume PV resources similar to how pods consume node resources.

Viewing PVCs

Navigate to Workloads > Storage > Persistent Volume Claims.

ColumnDescription
NamePVC name
NamespaceKubernetes namespace
StatusPending, Bound, Lost
VolumeBound PV name
CapacityAllocated storage size
Access ModesRequested access modes
Storage ClassRequested storage class
AgeTime since creation
Persistent Volume Claims list view

Creating a PVC

  1. Click + Create PVC
  2. Select the target namespace
  3. Enter the PVC name
  4. Specify storage size (e.g., 5Gi)
  5. Select access mode
  6. Choose storage class (or use default)
  7. Click Create
Create PVC modal

Example PVC YAML

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-app-data
  namespace: production
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: standard
  resources:
    requests:
      storage: 10Gi

PVC Actions

ActionDescription
ViewSee PVC details and bound volume
EditModify PVC (limited after binding)
ExpandIncrease storage size (if supported)
DeleteRemove the PVC

Storage Classes

Storage Classes define different types of storage available in the cluster, enabling dynamic provisioning of Persistent Volumes.

Viewing Storage Classes

Navigate to Workloads > Storage > Storage Classes.

ColumnDescription
NameStorage class name
ProvisionerStorage backend (e.g., kubernetes.io/aws-ebs)
Reclaim PolicyDefault reclaim policy
Volume BindingImmediate or WaitForFirstConsumer
Allow ExpansionWhether volumes can be resized
DefaultWhether this is the default storage class

Common Provisioners

ProvisionerCloud Provider
kubernetes.io/aws-ebsAWS EBS
kubernetes.io/gce-pdGoogle Cloud Persistent Disk
kubernetes.io/azure-diskAzure Disk
kubernetes.io/azure-fileAzure File
rancher.io/local-pathLocal path (development)

Volume Binding Modes

ModeDescription
ImmediateProvision volume immediately when PVC is created
WaitForFirstConsumerDelay provisioning until pod uses the PVC

Example Storage Class

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: fast-ssd
provisioner: kubernetes.io/aws-ebs
parameters:
  type: gp3
  iopsPerGB: "50"
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer

Common Operations

Expanding a Volume

If the storage class allows expansion:

  1. Select the PVC
  2. Click Expand
  3. Enter the new size
  4. Click Apply

Note: Volume expansion may require pod restart depending on the storage backend.

Troubleshooting Storage

IssuePossible CauseSolution
PVC stuck in PendingNo matching PV availableCheck storage class, create PV, or verify provisioner
PV stuck in ReleasedReclaim policy is RetainManually delete or recycle the PV
Volume not mountingAccess mode mismatchVerify pod and PVC access modes match
Expansion failedStorage class doesn’t allow expansionUse a different storage class

Best Practices

Persistent Volumes

  • Use Storage Classes for dynamic provisioning when possible
  • Set appropriate reclaim policies based on data importance
  • Use WaitForFirstConsumer for topology-aware provisioning
  • Monitor PV utilization to avoid storage exhaustion

Persistent Volume Claims

  • Always specify a storage class for predictable behavior
  • Request only the storage you need
  • Use labels for organization and filtering
  • Consider backup strategies for stateful data

Storage Classes

  • Create different classes for different performance tiers
  • Enable volume expansion for flexibility
  • Use WaitForFirstConsumer in multi-zone clusters
  • Document storage class capabilities for developers

Next Steps