0

Belajar Cloud AWS – Membuat Volume dengan Static Provisioning pada service EKS (Elastic Kubernetes Service)

static versioning eks

static versioning eks


Disini kita akan membuat dan men-consume PersistentVolume dari volume EBS yang sudah ada dengan static provisioning pada service EKS. Kemudian volume tersebut dimount kedalam pod dari filesystem nodenya. Contoh detailnya saya pelajari dari sini aws-ebs-csi-driver / static provisioning.

Static provisioning, artinya kita sebagai administrator yang menentukan berapa size volume EBS (pada persistent volume (pv)) yang ingin digunakan.

Membuat Static Provisioning

Kita perlu 3 buah file yaml:

  • claim.yaml -> membuat persistent volume claim
  • pv.yaml -> membuat persistent volume
  • pod.yaml -> membuat pod yang kemudian volume EBSnya akan dimount ke dalam pod ini

Langkah-langkahnya adalah sebagai berikut:

  • Mengattach volume EBS ke Instance / node EKS
  • Buat dan apply file pv.yaml
  • Buat dan apply file claim.yaml
  • Buat dan apply file pod.yaml
  • Login ke pod untuk melihat volume EBS sudah termount

1. Mengattach volume EBS ke instance

Pertama kita harus mengattach volume EBSnya dulu ke instance / node EKS

  • Pilih volume EBS
  • Actions > Attach Volume > Lalu kaitkan ke instance yang diinginkan

Jika sudah terattach maka tampilannya seperti dibawah:

static versioning eks

2. Buat dan apply file pv.yaml

Pertama kita buat file konfigurasi persistent volume dengan nama pv.yaml

pv.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: test-pv
spec:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 5Gi
  csi:
    driver: ebs.csi.aws.com
    fsType: ext4
    volumeHandle: vol-006xxx
  nodeAffinity:
    required:
      nodeSelectorTerms:
        - matchExpressions:
            - key: topology.ebs.csi.aws.com/zone
              operator: In
              values:
                - ap-southeast-1a
  • Kita set capacitynya 5Gi (5GB)
  • Ganti volumeHandle dengan volume-id kalian
  • Volume EBS saya berada di AZ (Availability Zone) ap-southeast-1a. Harap ganti dengan AZ kalian

Kita apply konfigurasinya (saya menggunakan kubectl disini) dan cek pv nya:

$ kubectl apply -f pv.yaml
$ kubectl get pv

3. Buat dan apply file claim.yaml

Buat persistent volume claim dengan nama claim.yaml

claim.yaml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: ebs-claim
spec:
  storageClassName: "" # Empty string must be explicitly set otherwise default StorageClass will be set
  volumeName: test-pv
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
  • Panggil persistent volume yang sebelumnya sudah kita buat dengan volumeName: test-pv
  • Sesuaikan lagi storagenya, storage: 5Gi

Lalu apply konfigurasinya dan cek pvcnya:

$ kubectl apply -f claim.yaml
$ kubectl get pvc
static versioning eks

4. Buat dan apply file pod.yaml

Terakhir kita buat file pod.yaml

pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: app
spec:
  containers:
  - name: app
    image: centos
    command: ["/bin/sh"]
    args: ["-c", "while true; do echo $(date -u) >> /data/out.txt; sleep 5; done"]
    volumeMounts:
    - name: persistent-storage
      mountPath: /data
  volumes:
  - name: persistent-storage
    persistentVolumeClaim:
      claimName: ebs-claim
  • Podnya menggunakan image centos
  • command dan args diatas untuk menggenerate file out.txt dan diisikan dengan tanggal
  • panggil persistent volume claim (yang sudah kita buat) dengan claimName: ebs-claim
  • lalu mount ke dalam pod pvc tersebut, dengan volumeMounts, mountPath: /data


Apply konfigurasinya dan cek podnya:

$ kubectl apply -f pod.yaml
$ kubectl get pods -o wide
static versioning eks

5. Login ke pod untuk melihat volume EBS sudah termount

Login ke podnya menggunakan command berikut:

$ kubectl exec -it app bash

Sebelumnya volume EBS kita mount ke path /data pada container, jadi kita cek path tersebut:

$ ls -al /data

Bisa dilihat ada file out.txt yang digenerate dari command and args pada pod.yaml.

Sementara ada folder prometheus, itu merupakan folder saya yang sudah ada sebelumnya di volume EBS, jadi ikut termount juga.

Demikian tutorial static versioning eks, semoga bermanfaat!

Ambar Hasbiyatmoko

Hello, I'm web developer. Passionate about programming, web server, and networking.

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.