# การจัดการพื้นที่จัดเก็บข้อมูล (Storage Class)

ใน Cluster ของ Kubernetes จะถูกติดตั้งมาพร้อมกับความสามารถในใช้ block storage ของ NIPA Cloud \
โดยได้มีการติดตั้ง CSI Plugin ไว้บน namespace ncs-system เพื่อทำการ integrate system ไว้เรียบร้อยแล้ว

โดยในรูปเป็น Storage Class ที่ NIPA Cloud มีให้ บริการทั้ง 3 Type รองรับการทำงานเป็น ReadWriteOne

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2Fg2i3OdUao5kngYnUg0a3%2Fimage.png?alt=media&#x26;token=d9208052-068e-4d74-82a2-313dfea95fec" alt=""><figcaption></figcaption></figure>



ผู้ใช้งานจึงสามารถให้ Kubernetes สั่งสร้าง/ลบ Volume ได้แบบอัตโนมัติ ผ่าน CSI Pluginโดนไม่จำเป็นต้องให้ผู้ดูแลระบบสร้าง Volume รอไว้ล่วงหน้า &#x20;



### ฟีเจอร์ที่รองรับ&#x20;

* Access Mode: ReadWriteOnce (RWO) ✅\
  Volume สามารถถูก Mount และใช้งานได้โดย Node/Pod เดียวเท่านั้น เป็นโหมดพื้นฐานที่ใช้กันทั่วไป
* Dynamic Provisioning ✅\
  Kubernetes สั่งสร้าง/ลบ Volume ได้แบบอัตโนมัติ ผ่าน CSI Plugin
* Volume Snapshots ✅\
  สร้าง Snapshot ของ Persistent Volume (PV) ได้โดยตรงผ่าน Kubernetes API เพื่อบันทึกสถานะของข้อมูล ณ เวลาใดเวลาหนึ่ง
* Volume Cloning ✅\
  สามารถสร้าง PV ใหม่โดยเป็นการโคลนข้อมูลทั้งหมดจาก PV ที่มีอยู่แล้วได้อย่างรวดเร็ว เหมาะสำหรับการสร้างสภาพแวดล้อมทดสอบ
* Volume Expansion ✅\
  เพิ่มขนาด Volume ขณะใช้งาน สามารถขยายขนาดของ PVC ที่ใช้งานอยู่ได้โดยไม่ต้อง Downtime แอปพลิเคชัน



### ทดสอบสร้าง PVC

YAML

```
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-app-data
  namespace: sandbox1
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
  storageClassName: standard-hdd

```



resource จะถูกสร้างขึ้นมาดังรูป

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2FJNbmd9RsZn88L9B3YT2T%2Fimage.png?alt=media&#x26;token=93400038-7a47-4779-a36d-13884c88bd72" alt=""><figcaption></figcaption></figure>



และเมื่อตรวจสอบผ่าน Portal จะพบว่ามี Resource เกิดขึ้นมาตาม PVC Volume โดยที่บริการนี้มีค่าใช้จ่ายตามที่ผู้ให้บริการคลาวด์กำหนด

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2F3QU10uthXybOmgTeBXhy%2Fimage.png?alt=media&#x26;token=cf2b08eb-8a44-4587-aab5-66f69a6aedee" alt=""><figcaption></figcaption></figure>



หากลบ PVC โดย default setting volume ที่อยู่บน Portal จะยังไม่ถูกลบ หากต้องการให้ลบ อัตโนมัติ สามารถตั้งค่าได้บน Storage Class
