Kubernetes how do you create persistent volume on AWS Elastic Block Store

2/8/2017

I try to create persistent volume with AWS Elastic Block Store, so whenever I deployed a metabase pods no need to worry to losing all initial data I've settled up.

Here is Deployment yaml file:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: metabase
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: metabase
        tier: backend
    spec:
      containers:
      - name: metabase
        image: metabase/metabase
        volumeMounts:
        - mountPath: "/metabase-ebs"
          name: metabase-volume
      volumes:
        - name: metabase-volume
          persistentVolumeClaim:
            claimName: metabase-pvc

My Persistent Volume Claim yaml file:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: metabase-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
  volumeName: metabase-pv

My Persistent Volume yaml file:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: "metabase-pv"
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  awsElasticBlockStore:
    volumeID: MY-EBS-VOLUME-ID
    fsType: ext4

How I test if my persistent volume is right or not:

  1. I destroy my pods after I set initial metabase setup
  2. Recreate pods

If there is no need to do the initial setup again. Then it works, if not then it fails.

Is my test scenario wrong? Or how do you manage to work with Persistent volume using AWS EBS?

Thanks in advance :)

UPDATE

Sorry, silly me I forget to mention the issue Im facing :bow:

The issue is:

Whenever I recreate pods after I do the initial setup, I have to do the initial setup again. So I assumed the Persistent Volume not working :(

-- Kris MP
amazon-ec2
amazon-web-services
kubernetes
metabase

0 Answers