Creating Kubernetes Persistent Volumes
In this lesson, we will understand and create three Kubernetes persistent Volumes.
Understanding PersistentVolumes
The fact that we have a few EBS volumes available does not mean that Kubernetes knows about their existence. We need to add PersistentVolumes that will act as a bridge between our Kubernetes cluster and AWS EBS volumes.
PersistentVolumes allow us to abstract details of how storage is provided (e.g., EBS) from how it is consumed. Just like volumes, PersistentVolumes are resources in a Kubernetes cluster. The main difference is that their lifecycle is independent of individual Pods that are using them.
Looking into the definition
Let’s look at a definition that will create a few PersistentVolumes:
cat pv/pv.yml
The output (limited to the first of the three volumes) is as follows:
kind: PersistentVolumeapiVersion: v1metadata:name: manual-ebs-01labels:type: ebsspec:storageClassName: manual-ebscapacity:storage: 5GiaccessModes:- ReadWriteOnceawsElasticBlockStore:volumeID: REPLACE_ME_1fsType: ext4...
Exploring the spec
section (Lines 7–15)
The spec
section features a few interesting details:
Line 8: We set manual-ebs
as the storage class ...