...

Kubernetes 101 – Volumes

Introduction

Q:What is a Volume

A: A directory with data accessible to all containers in a pod.

Kubernetes supports many types of volumes.

Persistent Volumes

Ephemeral Volumes

Projected Volumes

etc.

A pod can use any number of volume types simultaneously.
Persistent Volume (PV)

This is a storage element in a cluster, defined manually by an administrator or dynamically defined by a storage class.

A PV has its own lifecycle, separate from the lifecycle of Kubernetes pods.

apiVersion: v1

kind: PersistentVolume

metadata:

name: pv-volume

spec:

storageClassName: manual

capacity:

storage: 10Gi

accessModes:

– ReadWriteOnce

hostPath:

path: “/mnt/data”
Persistent Volume Claim (PVC)

This one defines a storage request.

Let’s say we have an application running on a container that needs a certain type of storage: 3 Gi of storage and needs to read and write data.

apiVersion: v1

kind: PersistentVolumeClaim

metadata:

name: pv-claim

spec:

storageClassName: manual

accessModes: – ReadWriteOnce

resources:

requests:

storage: 3Gi
Usage

Let’s put them all together!

The pod running the application doesn’t need to know the exact PV it’s accessing.

It only needs to specify what type of access it needs, how much storage, and what type of storage.

apiVersion: v1

kind: Pod

metadata:

name: pv-pod

spec:

volumes:

– name: pv-storage

persistentVolumeClaim:

claimName: pv-claim

containers:

– name: pv-container

image: nginx

volumeMounts:

– mountPath: “/usr/share/nginx/html”

name: pv-storage
Follow the Kubernetes 101 series on mindit.io.
Check out new-spike.net for other articles on Kubernetes and much more!

Distribute:

/turn your vision into reality

The best way to start a long-term collaboration is with a Pilot project. Let’s talk.