Tìm hiểu về Storage Volume emptyDir trong Kubernetes

126

Tìm hiểu về loại Storage Volume emptyDir trong KubernetesCuongquach.com | Như chúng ta đã biết thì khi nói về vùng lưu trữ (storage volume) trong Kubernetes thì K8S hiện hỗ trợ đến hơn 20 loại Volume Storage khác nhau: emptyDir, hostPath, csi, local, … phục vụ các nhu cầu hoạt động khác nhau khi thiết kế ứng dụng hệ thống. Trong bài viết này chúng ta sẽ tìm hiểu về loại Volume Storage cơ bản đầu tiên trong Kubernetes là : emptyDir

storage-volume-emptydir-k8s

Storage Volume emptyDir trong Kubernetes là gì ?

Một số đặc điểm của Volume emptyDir:

  • Một emptyDir volume sẽ được khởi tạo với vùng lưu trữ rỗng (khởi tạo trên ổ cứng của Kubernetes Node) đi theo một Pod được khởi động trên Kubernetes Node.
  • Một emptyDir volume có thể được mount với bất kì mount point nào trong các container của Pod.
  • Các containers trong cùng 1 Pod có thể đọc/ghi với emptyDir Volume.
  • Khi một Pod được khởi động lại hoặc bị xoá đi, thì dữ liệu trong emptyDir sẽ bị mất hết.
  • Còn khi Container trong Pod bị crash (nhưng không ảnh hưởng gây đến việc xoá/khởi động lại Pod) thì dữ liệu trong volume emptyDir vẫn còn.
  • Vì vậy mà emptyDir volume không dùng cho việc lưu trữ các dữ liệu mang có yêu cầu thời gian dài hạn và toàn vẹn dữ liệu như (database, dữ liệu ứng dụng, dữ liệu giám sát hệ thống,…)
  • EmptyDir ngoài hỗ trợ tạo khu vực lưu trữ trên ổ cứng, còn hỗ trợ tạo khu vực lưu trữ volume trên RAM với tmpfs nữa đấy.

khác biệt giữa volume emptydir và hostpath

Một số tình huống sử dụng của Volume emptyDir:

  • Thường volume emptyDir dùng với mục đích là một thư mục chứa cache tạm thời (temporary cache).
  • Là khu vực lưu trữ dữ liệu chung (shared storage) giữa các container trong cùng 1 Pod, từ đó các ứng dụng container trong cùng Pod có thể trao đổi dữ liệu với nhau qua volume chung.

Cấu hình một emptyDir Volume

Demo với emptyDir Volume

  • Chúng ta sẽ tạo 2 container trong cùng 1 Pod , sau đó mở shell vào từng con container ghi dữ liệu vào thư mục emptyDir volume đã được mount.
  • Container myvolumes-cuongquach-1 sẽ mount emptyDir volume vào thư mục /demo1.
  • Container myvolumes-cuongquach-2 sẽ mount emptyDir volume vào thư mục /demo2.

– Khởi tạo Pod với emptyDir volume làm lab nào.

– Tạo xong thì coi thông tin chi tiết về Pod cuongquach-pod nghen.

– Giờ mở shell vào con container ‘myvolumes-cuongquach-1‘ , rồi tạo file trong thư mục ‘/demo1‘.

– Giờ mở shell vào con container ‘myvolumes-cuongquach-2‘ , rồi đọc file ‘testfile.txt‘ trong thư mục ‘/demo2‘ .

Yup vậy là bạn đã hiểu cách sử dụng vùng lưu trữ volume loại emptyDir trong một Pod trên Kubernetes rồi phải không nào. Đây là volume type cơ bản và dễ sử dụng tuỳ theo nhu cầu của ứng dụng.

Nguồn: https://cuongquach.com/

LEAVE A REPLY

Please enter your comment!
Please enter your name here