Skip to content

Work with persistent and ephemeral volumes in Pods.

CKAD

Overview

Understanding how to work with persistent and ephemeral volumes in Kubernetes Pods is crucial for managing data storage and lifecycle. Persistent volumes (PVs) provide long-term storage, while ephemeral volumes are temporary and tied to the Pod's lifecycle.

Documentation

Kubernetes Volumes.


Using Persistent Volumes (PVs)

Persistent Volumes in Kubernetes are used for storing data beyond the lifecycle of a Pod. They are especially important for stateful applications like databases.

Persistent Volume Claim (PVC)
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
Pod
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
    - name: my-container
      image: nginx
      volumeMounts:
      - mountPath: "/var/www/html"
        name: my-storage
  volumes:
    - name: my-storage
      persistentVolumeClaim:
        claimName: my-pvc

In this example, a PVC is created and then mounted into a Pod. The data stored in /var/www/html will persist even if the Pod is deleted.


Using Ephemeral Volumes

Ephemeral volumes, such as emptyDir, are tied to the lifecycle of a Pod. They are used for temporary data that doesn't need to persist.

Pod with emptyDir Volume
apiVersion: v1
kind: Pod
metadata:
  name: my-temp-pod
spec:
  containers:
    - name: my-container
      image: nginx
      volumeMounts:
      - mountPath: "/tmp"
        name: temp-storage
  volumes:
    - name: temp-storage
      emptyDir: {}

In this setup, an emptyDir volume is created for temporary data storage. The data in /tmp is lost when the Pod is deleted.


Integration with Kubernetes Ecosystem

  • PVs can be backed by various storage systems like NFS, cloud storage, or local storage.
  • Ephemeral volumes are useful for caching, temporary computations, or as a workspace for applications.
  • Kubernetes StatefulSets can be used with PVs for stateful applications requiring stable, persistent storage.

Conclusion

Both persistent and ephemeral volumes play key roles in Kubernetes data management. Understanding their characteristics and use cases helps in effectively architecting and managing containerized applications in Kubernetes.


Comments