2 min read
If you have an existing EBS volume that you want to use on your EKS cluster, or you don't want to let Kubernetes to manage your volumes, you can use awsElasticBlockStore to link an existing EBS volume to a PersistentVolume or use it directly as a volume on a pod spec:
If we want to use a PersistentVolume object we will have to create using the following spec, adjusting it's size and volumeID:
kind: PersistentVolume apiVersion: v1 metadata: name: test-ebs spec: capacity: storage: 1Gi accessModes: - ReadWriteOnce awsElasticBlockStore: volumeID: vol-0f188b7fd87c91a7e fsType: ext4
But we can also mount it directly into a pod as a volume:
apiVersion: v1 kind: Pod metadata: name: demo-pod-ebs-volume spec: containers: - image: k8s.gcr.io/test-webserver name: test-container volumeMounts: - mountPath: /test-ebs name: ebs-volume volumes: - name: ebs-volume awsElasticBlockStore: volumeID: vol-0f188b7fd87c91a7e fsType: ext4
This can also be used on any object containing a pod spec template, such as Deployment, DaemonSet, Job...
By manually managing EBS volumes we are going to give away the automatic provision and automatic Volume resizing, nevertheless it is still possible.
Posted on 24/05/2021