TRONG KUBERNETES, PERSISTENTVOLUME (PV) CÓ THỂ ĐƯỢC TẠO RA BỞI HAI CÁCH CHÍNH, VÀ TÙY THUỘC VÀO CÁCH ĐÓ MÀ THÀNH PHẦN CHỊU TRÁCH NHIỆM SẼ KHÁC NHAU:
THÀNH PHẦN TẠO RA PV TRONG TRƯỜNG HỢP CẤP PHÁT TĨNH (STATIC PROVISIONING):
TRONG TRƯỜNG HỢP NÀY, QUẢN TRỊ VIÊN CLUSTER (CLUSTER ADMINISTRATOR) LÀ NGƯỜI CHỊU TRÁCH NHIỆM TẠO RA PV. HỌ SẼ CẤU HÌNH THỦ CÔNG MỘT ĐỐI TƯỢNG PV TRONG KUBERNETES, ÁNH XẠ NÓ TỚI MỘT TÀI NGUYÊN LƯU TRỮ THỰC TẾ BÊN NGOÀI CLUSTER (VÍ DỤ: MỘT Ổ ĐĨA EBS ĐÃ TẠO SẴN, MỘT SHARE NFS, V.V.).
ĐÂY LÀ MỘT HÀNH ĐỘNG THỦ CÔNG, KHÔNG PHẢI DO MỘT "THÀNH PHẦN" TỰ ĐỘNG CHẠY TRONG CLUSTER TẠO RA.
THÀNH PHẦN TẠO RA PV TRONG TRƯỜNG HỢP CẤP PHÁT ĐỘNG (DYNAMIC PROVISIONING):
ĐÂY LÀ CÁCH PHỔ BIẾN VÀ TỰ ĐỘNG HƠN ĐỂ TẠO PV. KHI MỘT POD YÊU CẦU PERSISTENTVOLUMECLAIM (PVC) TRỎ ĐẾN MỘT STORAGECLASS, THÌ MỘT PROVISIONER SẼ ĐƯỢC KÍCH HOẠT ĐỂ TỰ ĐỘNG TẠO PV.
PROVISIONER (CÒN ĐƯỢC GỌI LÀ STORAGECLASS CONTROLLER HOẶC MỘT CSI DRIVER) LÀ THÀNH PHẦN CHÍNH CHỊU TRÁCH NHIỆM TẠO PV TRONG TRƯỜNG HỢP NÀY. PROVISIONER NÀY THƯỜNG CHẠY DƯỚI DẠNG MỘT POD (CONTROLLER) TRONG CLUSTER CỦA BẠN.
MỖI STORAGECLASS SẼ CHỈ ĐỊNH MỘT PROVISIONER CỤ THỂ (VÍ DỤ: KUBERNETES.IO/AWS-EBS, PD.CSI.STORAGE.GKE.IO, CEPHFS.CSI.CEPH.COM, HOẶC MỘT CUSTOM PROVISIONER NHƯ NFS PROVISIONER). KHI MỘT PVC YÊU CẦU STORAGECLASS ĐÓ, PROVISIONER TƯƠNG ỨNG SẼ NHẬN YÊU CẦU VÀ GIAO TIẾP VỚI HỆ THỐNG LƯU TRỮ BÊN NGOÀI (CLOUD PROVIDER'S API, HỆ THỐNG NFS, CEPH, V.V.) ĐỂ TẠO MỘT TÀI NGUYÊN LƯU TRỮ VẬT LÝ, SAU ĐÓ TẠO ĐỐI TƯỢNG PV TƯƠNG ỨNG TRONG KUBERNETES VÀ LIÊN KẾT NÓ VỚI PVC.
TÓM LẠI:
NẾU LÀ CẤP PHÁT TĨNH, PV ĐƯỢC TẠO RA BỞI QUẢN TRỊ VIÊN CLUSTER.
NẾU LÀ CẤP PHÁT ĐỘNG, PV ĐƯỢC TẠO RA BỞI PROVISIONER (MỘT THÀNH PHẦN ĐIỀU KHIỂN CHẠY DƯỚI DẠNG POD TRONG CLUSTER), DỰA TRÊN CẤU HÌNH CỦA STORAGECLASS VÀ YÊU CẦU TỪ PERSISTENTVOLUMECLAIM (PVC).
VÌ CÂU HỎI HỎI VỀ "THÀNH PHẦN NÀO CHẠY TRÊN CLUSTER CỦA BẠN", CÂU TRẢ LỜI THƯỜNG HƯỚNG TỚI PROVISIONER (THUỘC STORAGECLASS) TRONG MÔ HÌNH CẤP PHÁT ĐỘNG.