Ephemeral Volume là gì? Cách sử dụng lưu trữ tạm thời trong Kubernetes
31/07/2026Không phải dữ liệu nào trong Kubernetes cũng cần được lưu giữ lâu dài. Với cache, file xử lý trung gian hoặc dữ liệu dùng chung giữa các container, Ephemeral Volume mang đến một không gian lưu trữ gọn nhẹ, tồn tại theo vòng đời Pod và tự động được thu hồi khi không còn cần thiết. Cùng Viettel IDC tìm hiểu Ephemeral Volume là gì và cách lưu trữ tạm thời trong Kubernetes.
Ephemeral Volume là gì?
Ephemeral Volume (volume tạm thời) là không gian lưu trữ có vòng đời gắn với một Pod trong Kubernetes. Dữ liệu trong volume vẫn được duy trì khi container khởi động lại bên trong cùng Pod, nhưng sẽ bị xóa khi Pod không còn tồn tại. Ephemeral Volume thường được dùng để lưu dữ liệu nháp, bộ nhớ đệm, tệp trung gian hoặc các dữ liệu không cần duy trì lâu dài.
Cơ chế hoạt động của Ephemeral Volume là gì?
Ephemeral Volume hoạt động bằng cách tạo một vùng lưu trữ tạm và gắn vùng lưu trữ đó vào Pod trong suốt quá trình Pod tồn tại. Khi Pod được lên lịch chạy trên một node, Kubernetes chuẩn bị volume theo cấu hình trong Pod spec rồi mount vào đường dẫn đã chỉ định bên trong container. Các container trong cùng Pod có thể truy cập hoặc chia sẻ dữ liệu thông qua volume này.
Dữ liệu trên Ephemeral Volume vẫn được giữ nếu container gặp lỗi và khởi động lại trong cùng một Pod. Tuy nhiên, khi Pod bị xóa hoặc được thay thế bằng Pod mới có UID khác, volume cũ cũng bị hủy và dữ liệu bên trong không còn tồn tại.
Các loại Ephemeral Volume trong Kubernetes
Kubernetes cung cấp nhiều loại volume tạm thời cho từng nhu cầu lưu trữ khác nhau. Mỗi loại Ephemeral Volume trong Kubernetes có cơ chế và phạm vi sử dụng riêng.
emptyDir
emptyDir được Kubernetes khởi tạo khi Pod được phân bổ đến một node. Ban đầu, volume chỉ là một thư mục trống, cho phép một hoặc nhiều container trong cùng Pod lưu file tạm, cache hoặc trao đổi dữ liệu với nhau.
Khi container gặp lỗi rồi khởi động lại, dữ liệu trong emptyDir vẫn được giữ nguyên miễn là Pod còn tồn tại. Đến khi Pod bị xóa khỏi node, toàn bộ dữ liệu cũng bị loại bỏ. Mặc định, emptyDir sử dụng ổ đĩa cục bộ của node; nếu khai báo medium: Memory, dữ liệu sẽ được lưu trong RAM.
ConfigMap, Secret, DownwardAPI và Projected Volume
So với emptyDir, các volume này không tạo không gian để ứng dụng thường xuyên ghi file tạm. Mục đích chính là cung cấp cấu hình, thông tin xác thực và metadata cần thiết trong quá trình container hoạt động.
ConfigMap, Secret, DownwardAPI và Projected Volume hỗ trợ đưa cấu hình hoặc thông tin từ Kubernetes vào container dưới dạng tệp tin:
- ConfigMap chứa những tham số cấu hình không nhạy cảm.
- Secret lưu mật khẩu, token, chứng chỉ và thông tin cần bảo mật.
- DownwardAPI cung cấp metadata của Pod như tên, namespace, label hoặc giới hạn tài nguyên.
- Projected Volume tập hợp dữ liệu từ ConfigMap, Secret, DownwardAPI và ServiceAccountToken vào cùng một thư mục.
CSI Ephemeral Volume
CSI Ephemeral Volume được cung cấp thông qua CSI driver có hỗ trợ cơ chế lưu trữ tạm thời. Volume được khai báo trực tiếp trong Pod spec; sau khi Pod được phân bổ đến node, CSI driver sẽ chuẩn bị và mount tài nguyên lưu trữ vào container.
CSI Ephemeral Volume đáp ứng những yêu cầu mà volume tích hợp sẵn của Kubernetes chưa hỗ trợ, chẳng hạn truy cập thiết bị chuyên dụng, tối ưu hiệu suất hoặc cung cấp dữ liệu theo cơ chế riêng. Khả năng triển khai phụ thuộc vào từng CSI driver nên cần kiểm tra tài liệu tương thích trước khi cấu hình.
Generic Ephemeral Volume
Generic Ephemeral Volume cho phép Pod yêu cầu tài nguyên lưu trữ động thông qua StorageClass. Dựa vào cấu hình trong Pod, Kubernetes tạo PersistentVolumeClaim tương ứng và tự động quản lý tài nguyên theo vòng đời Pod.
Điểm khác biệt so với CSI Ephemeral Volume nằm ở khả năng tận dụng storage driver đã hỗ trợ dynamic provisioning, không cần phát triển riêng driver dành cho volume tạm thời. Generic Ephemeral Volume phù hợp với workload cần lựa chọn dung lượng, StorageClass hoặc các tính năng lưu trữ nâng cao nhưng không yêu cầu giữ dữ liệu sau khi Pod bị xóa.
Cách cấu hình Ephemeral Volume với emptyDir
Để tạo lưu trữ tạm thời trong Kubernetes, cần khai báo emptyDir trong trường volumes, sau đó mount volume vào container thông qua volumeMounts. Ví dụ dưới đây tạo một volume tên temporary-data và gắn vào thư mục /usr/share/nginx/html:
Trong cấu hình:
- volumes khai báo volume temporary-data thuộc loại emptyDir.
- volumeMounts kết nối volume với container.
- mountPath xác định thư mục dùng để đọc và ghi dữ liệu.
- emptyDir: {} sử dụng không gian lưu trữ cục bộ của node theo mặc định.
Sau khi lưu cấu hình vào tệp emptydir-demo.yaml, chạy lệnh sau để tạo Pod:
Kiểm tra trạng thái Pod bằng lệnh:
Dữ liệu trong emptyDir vẫn tồn tại khi container khởi động lại, miễn là Pod chưa bị xóa. Khi Pod không còn tồn tại, Kubernetes cũng loại bỏ volume cùng toàn bộ dữ liệu bên trong.
Để giới hạn dung lượng, bổ sung trường sizeLimit:
Trường hợp cần tốc độ truy cập cao, có thể dùng RAM làm nơi lưu trữ:
Với medium: Memory, Kubernetes tạo một hệ thống tệp tmpfs. Dung lượng sử dụng được tính vào bộ nhớ của container, vì vậy cần đặt sizeLimit và giới hạn RAM phù hợp để tránh ảnh hưởng đến hoạt động của Pod.
Khi nào nên và không nên sử dụng Ephemeral Volume?
Ephemeral Volume phù hợp với dữ liệu chỉ phục vụ quá trình xử lý và có thể tạo lại khi Pod mới được khởi tạo. Ngược lại, dữ liệu cần duy trì lâu dài, sao lưu hoặc khôi phục nên được lưu bằng Persistent Volume hay hệ thống lưu trữ chuyên dụng.
Kết luận
Hiểu rõ Ephemeral Volume là gì giúp người dùng lựa chọn đúng không gian lưu trữ cho cache, file tạm và dữ liệu trung gian trong Kubernetes. Do vòng đời gắn với Pod, Ephemeral Volume cần được cấu hình dung lượng hợp lý và không nên dùng cho dữ liệu quan trọng cần lưu giữ lâu dài.
Khi số lượng workload tăng, bài toán không còn dừng ở cấu hình volume mà còn mở rộng sang quản lý cluster, tài nguyên và tính ổn định của toàn hệ thống. Viettel Dedicated Kubernetes Service (vDKS) giúp doanh nghiệp triển khai Kubernetes nhanh hơn, quản lý tập trung và giảm áp lực vận hành hạ tầng nền tảng.
Tham khảo dịch vụ tại: https://viettelidc.com.vn/viettel-kubernetes-service
Để được hỗ trợ tư vấn và tìm hiểu các dịch vụ của Viettel, bạn có thể liên hệ trực tiếp tới Viettel IDC qua các kênh:
- Hotline: 1800 8088 (miễn phí cước gọi)
- Fanpage: https://www.facebook.com/viettelidc
Tin liên quan
"SOVEREIGN CLOUD" VÀ NGHỊCH LÝ CHUYỂN ĐỔI SỐ: GIẢI MÃ BÀI TOÁN TUÂN THỦ CHO NGÀNH TÀI CHÍNH & CHÍNH PHỦ
Các tổ chức thuộc nhóm ngành trọng yếu như tài chính, ngân hàng (BFSI) và cơ quan nhà nước đang khao khát hiện đại hóa hệ thống IT (chuyển đổi sang kiến trúc Microservices, sử dụng Container/Kubernetes) để tăng tốc độ triển khai dịch vụ và nâng cao trải nghiệm người dùng. Tuy nhiên, họ lại đang vấp phải một "nghịch lý" lớn: Càng muốn áp dụng công nghệ Cloud hiện đại, rào cản về tuân thủ pháp lý và an toàn thông tin càng trở nên khắt khe.
BÀI TOÁN "NOISY NEIGHBOR" TRÊN CLOUD VÀ CHIẾN LƯỢC TỐI ƯU HIỆU NĂNG CHO HỆ THỐNG CỐT LÕI
Trong kỷ nguyên mà dữ liệu là "dầu mỏ mới", việc vận hành các hệ thống xương sống (Core ERP, Core Banking) hay các workload tính toán chuyên sâu (AI, Machine Learning, Datalake) đòi hỏi năng lực phần cứng vô cùng mạnh mẽ.
"BÃO GIÁ" HẠ TẦNG CNTT VÀ BÀI TOÁN SỐNG CÒN CỦA DOANH NGHIỆP: VÌ SAO PRIVATE CLOUD DẠNG DỊCH VỤ LÊN NGÔI?
Làn sóng bùng nổ hạ tầng AI toàn cầu đang tạo ra một "cơn địa chấn" về giá phần cứng máy chủ, chip nhớ DRAM, ổ cứng doanh nghiệp và chi phí năng lượng. Đứng trước áp lực phải chuyển đổi số nhưng lại vấp phải bài toán chi phí đầu tư (CapEx) đắt đỏ cùng thời gian giao hàng kéo dài hàng tháng, các nhà quản trị công nghệ (CIO) và tài chính (CFO) đang tìm kiếm một hướng đi mới: Không cần bỏ hàng tỷ đồng mua sắm hạ tầng mà vẫn sở hữu riêng một hệ thống Private Cloud hoàn chỉnh, an toàn và sẵn sàng vận hành ngay lập tức.
Digital Workplace là gì? Xu hướng môi trường làm việc số cho doanh nghiệp
Digital Workplace là gì? Khám phá mô hình vận hành, thành phần, lợi ích, ứng dụng, thách thức và xu hướng môi trường làm việc số cho doanh nghiệp.
Lỗ hổng Shellshock là gì? Cơ chế, tác động và cách khắc phục
Lỗ hổng Shellshock (CVE-2014-6271) trong Bash là gì, vì sao nghiêm trọng? Tìm hiểu nguyên nhân, hệ thống bị ảnh hưởng và cách kiểm tra, vá lỗi.
Scratch là gì? Cách hoạt động, ứng dụng và đối tượng phù hợp
Scratch là gì? Tìm hiểu cách lập trình bằng khối lệnh, các khái niệm có thể học, ứng dụng thực tế và sự khác nhau giữa Scratch với ScratchJr.
Phân biệt các loại Web Hosting: Đâu là lựa chọn phù hợp cho website?
Phân biệt các loại Web Hosting và tìm hiểu cách mỗi mô hình hoạt động, từ đó lựa chọn giải pháp phù hợp với nhu cầu, quy mô và định hướng phát triển website.
Website có cần hosting không? Giải đáp chi tiết từ A-Z
Website có cần hosting không? Tìm hiểu vai trò của hosting, domain và các trường hợp cần và không cần mua hosting riêng cho website.
Top nhà cung cấp dịch vụ Cloud Camera uy tín tại Việt Nam
Top nhà cung cấp dịch vụ Cloud Camera uy tín tại Việt Nam, cùng tiêu chí lựa chọn và những lưu ý quan trọng trước khi đăng ký dịch vụ.
Trigger là gì trong DBMS? Cách hoạt động, các loại phổ biến và ứng dụng
Trigger là gì trong DBMS? Tìm hiểu cách trigger hoạt động, các loại phổ biến, ví dụ minh họa, ưu nhược điểm và khi nào nên sử dụng.
Bình luận ()