基於NAS動態儲存裝置卷,系統可以為工作負載按需自動建立和分配儲存空間,無需預先建立PV。這不僅能滿足資料持久化和共用(多Pod同時讀寫)的需求,還可以簡化Web應用、日誌儲存等情境下的儲存管理。
工作原理
使用動態儲存裝置卷時,應用在建立PVC時,系統會根據PVC指定的StorageClass,按需自動建立一個全新的儲存卷及與之對應的PV。此模式更為靈活,且支援儲存卷的自動擴容。
掛載模式
可通過StorageClass中的volumeAs參數指定掛載模式,定義PV和NAS檔案系統的對應關係。
掛載方式 | 說明 | 使用情境 |
子目錄模式。一個PV對應一個NAS檔案系統的獨立子目錄,便於資料隔離。 |
| |
共用目錄模式。所有PV均對應StorageClass中定義的同一個NAS目錄,所有使用此StorageClass的PVC都指向NAS上同一個共用目錄。 | 多個跨命名空間的Pod需要掛載同一個NAS子目錄。 | |
filesystem(不推薦) | 檔案系統模式。一個PV對應一個動態建立的、獨立的NAS檔案系統執行個體。 | 對效能、安全等有嚴格隔離要求,需要為應用動態建立和刪除獨立的NAS檔案系統和掛載點。成本較高。 |
通用流程
掛載NAS動態儲存裝置卷的主要流程如下。
|
準備工作
已安裝csi-plugin組件和csi-provisioner組件。
CSI組件預設安裝,請確保未手動卸載。可在頁面查看安裝情況。建議升級CSI組件至最新版本。
使用subpath和sharepath時,需已建立NAS檔案系統,且滿足以下條件。否則請重新建立檔案系統。
NAS在掛載連通性、檔案系統數量、協議類型等方面存在使用限制。
協議類型:僅支援NFS。
Virtual Private Cloud:NAS檔案系統需與叢集VPC保持一致。NAS支援跨可用性區域掛載,不支援跨VPC掛載。
掛載點:添加與叢集處於同一VPC內且狀態可用的掛載點,具體操作請參見管理掛載點。請記錄掛載點地址。
(可選)加密類型:如需加密儲存卷資料,請在建立NAS檔案系統時配置加密類型。
注意事項
禁止刪除掛載點:儲存卷使用期間,請勿在NAS控制台刪除其對應的掛載點,以免導致節點I/O異常。
並發寫入:NAS為共用儲存。當多個Pod同時掛載一個儲存卷時,應用自身需要處理並發寫入可能帶來的資料一致性問題。
關於NAS並發寫入的一些限制條件,請參見如何避免多進程或多用戶端並發寫同一記錄檔可能出現的異常?和讀寫訪問檔案類問題。
掛載效能:若在應用中配置了
securityContext.fsgroup,kubelet會在掛載後遞迴執行chmod或chown操作,可能導致Pod啟動時間顯著延長。如需最佳化,請參見NAS儲存卷FAQ。
方式一:使用subpath方式掛載
此方式下,每個PVC會自動在NAS檔案系統下建立一個獨立的子目錄,作為其PV。
1. 建立StorageClass
StorageClass作為動態磁碟區的供應模板,定義了儲存資源的來源和行為。
kubectl
參見以下內容建立
alicloud-nas-subpath.yaml。apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: # StorageClass名稱,需在叢集內唯一 name: alicloud-nas-subpath mountOptions: - nolock,tcp,noresvport - vers=3 parameters: # 設定為 subpath volumeAs: subpath server: "0cd8b4a576-g****.cn-hangzhou.nas.aliyuncs.com" path: "k8s" archiveOnDelete: "true" provisioner: nasplugin.csi.alibabacloud.com reclaimPolicy: Retain allowVolumeExpansion: true參數
描述
mountOptionsNAS的掛載參數,包括NFS協議版本等。預設使用v3協議掛載,可通過
vers=4.0方式指定協議版本。關於不同NAS類型支援的NFS協議,請參見NFS協議。parameters.volumeAs掛載模式,設定為
subpath。parameters.serverNAS掛載點地址。
關於如何查看掛載點地址,請參見管理掛載點。
parameters.path待掛載的NAS子目錄。如果未設定,則預設掛載到根目錄。
如果NAS中沒有該目錄,系統會自動建立並進行掛載。
通用型NAS:根目錄為
/。極速型NAS:根目錄為
/share。掛載子目錄時,path需以/share開頭(如/share/data)。
parameters.archiveOnDelete刪除PVC時,若
reclaimPolicy為Delete,後端儲存的檔案資料是否被真正刪除。NAS為共用儲存,提供此選項進行雙重確認。
true(預設):不會真正刪除目錄或檔案,而是將其歸檔並重新命名,格式為archived-{pvName}.{timestamp}。false:後端對應的目錄及資料會被真正刪除。此處刪除的是NAS的subpath目錄以及其中檔案,NAS檔案系統本身不會被刪除。
如需刪除NAS檔案系統,請參見刪除檔案系統。
在高頻建立和刪除PV的情境下,設定為
false可能導致CSI控制器任務隊列阻塞,新PV無法被建立,請參見使用NAS動態儲存裝置卷時Controller的任務隊列已滿且無法建立新的PV。provisioner驅動類型。使用阿里雲NAS CSI組件時固定為
nasplugin.csi.alibabacloud.com。reclaimPolicyPV的回收策略。
Delete(預設):刪除PVC時,根據archiveOnDelete的配置處理後端儲存資料。Retain:刪除PVC時,PV和NAS檔案不會被刪除,需手動刪除。適用於對資料安全性要求高的情境,以免誤刪資料。
allowVolumeExpansion僅通用型NAS支援
允許通過修改 PVC 容量來動態擴容由該 StorageClass 建立的 PV。
該 StorageClass 將基於 NAS 的目錄配額功能來管理PV容量,從而精確地管理和限制其容量。支援通過編輯 PVC 的
spec.resources.requests.storage欄位來實現線上擴容,請參見為NAS動態儲存裝置卷設定目錄配額。NAS 目錄配額的生效是一個非同步過程。PV 剛剛建立或擴容完成後,如果立即進行高速、大批量的資料寫入,存在因配額尚未完全生效而超出規定容量的可能。請參見使用限制瞭解更多使用限制。
建立StorageClass。
kubectl create -f alicloud-nas-subpath.yaml
控制台
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
單擊建立,配置StorageClass名稱(叢集內保持唯一)並選擇儲存卷類型為NAS,按照頁面提示完成StorageClass的建立。
主要配置項如下。
配置項
說明
選擇掛載點
NAS檔案系統的掛載點地址。
儲存卷模式
儲存卷訪問模式。本樣本為子目錄,即subpath,將在掛載路徑下自動建立子目錄。資料將儲存於
<NAS掛載點>:<掛載路徑>/<pv-name>/下。掛載路徑
待掛載的NAS子目錄。如果未設定,則預設掛載到根目錄。
如果NAS中沒有該目錄,系統會自動建立並進行掛載。
通用型NAS:根目錄為
/。極速型NAS:根目錄為
/share。掛載子目錄時,path需以/share開頭(如/share/data)。
回收策略
PV的回收策略。
Delete(預設):刪除PVC時,根據archiveOnDelete的配置處理後端儲存資料。Retain:刪除PVC時,PV和NAS檔案不會被刪除,需手動刪除。適用於對資料安全性要求高的情境,以免誤刪資料。
掛載選項
NAS的掛載參數,包括NFS協議版本等。預設使用v3協議掛載,可通過
vers=4.0方式指定協議版本。關於不同NAS類型支援的NFS協議,請參見NFS協議。建立後,可在儲存類列表查看建立的StorageClass。
2. 建立PVC
PVC 作為應用的儲存請求,將觸發 StorageClass 的動態供應機制,自動建立並綁定一個匹配的 PV。
kubectl
參見以下內容建立
nas-pvc.yaml。kind: PersistentVolumeClaim apiVersion: v1 metadata: name: nas-csi-pvc spec: accessModes: - ReadWriteMany # 指定待綁定的 StorageClass storageClassName: alicloud-nas-subpath resources: requests: # 聲明所需使用的儲存卷的容量 storage: 20Gi參數
說明
accessModes訪問模式。可取值:
ReadWriteMany(預設):多節點讀寫。ReadWriteOnce:單節點讀寫。ReadOnlyMany:多節點唯讀。
storageClassName待綁定的StorageClass。
storage聲明所需使用的儲存卷的容量。預設情況下,此聲明主要作為資源請求,並不限制Pod實際可用的儲存空間。
NAS容量上限由規格決定,請參見通用型NAS和極速型NAS確認。
但當StorageClass的
allowVolumeExpansion為true時,此值將變為一個嚴格執行的硬性限制。CSI 將按照該配置設定NAS的目錄配額,限制PV的可用容量。建立PVC。
kubectl create -f nas-pvc.yaml查看PV。
kubectl get pv預期輸出如下,表明已基於StorageClass自動建立了PV,並綁定到PVC。
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE nas-a7540d97-0f53-4e05-b7d9-557309****** 20Gi RWX Retain Bound default/nas-csi-pvc alicloud-nas-subpath <unset> 5m
控制台
在叢集管理頁左側導覽列,選擇。
在儲存聲明頁面,單擊建立,配置PVC後,單擊建立。
配置項
說明
儲存宣告類型
選擇NAS。
名稱
PVC名稱,在命名空間內保持唯一。
分配模式
選擇使用儲存類動態建立。
已有儲存類
單擊選擇儲存類,選擇此前建立的StorageClass。
總量
聲明所需使用的儲存卷的容量。預設情況下,此聲明主要作為資源請求,並不限制Pod實際可用的儲存空間。
NAS容量上限由規格決定,請參見通用型NAS和極速型NAS確認。
但當StorageClass的
allowVolumeExpansion為true時,此值將變為一個嚴格執行的硬性限制。CSI 將按照該配置設定NAS的目錄配額,限制PV的可用容量。訪問模式
訪問模式。可取值:
ReadWriteMany(預設):多節點讀寫。ReadWriteOnce:單節點讀寫。ReadOnlyMany:多節點唯讀。
3. 建立應用並掛載NAS
PVC建立後,可將其綁定的 PV 掛載到應用中。本小節將建立兩個Deployment,引用同一個PVC,實現多個 Pod 共用同一NAS子目錄。
kubectl
建立2個Deployment並掛載同一PVC,使其共用同一個NAS檔案系統的同一個子目錄。
如需為多個Pod掛載同一NAS檔案系統的不同子目錄,請按照子目錄建立不同的StorageClass和對應的PVC,再分別掛載PVC。
參見以下內容,分別建立
nginx-1.yaml和nginx-2.yaml。兩個應用的配置基本一致,兩者引用同一PVC。
建立2個Deployment。
kubectl create -f nginx-1.yaml -f nginx-2.yaml查看Pod狀態。
kubectl get pod -l app=nginx預期輸出
NAME READY STATUS RESTARTS AGE nas-test-1-b75d5b6bc-***** 1/1 Running 0 51s nas-test-2-b75d5b6bc-***** 1/1 Running 0 44s查看兩個 Pod 詳細配置,確認掛載的PVC。
將
<podName>替換為兩個Pod的實際名稱。kubectl describe pod <podName> | grep "ClaimName:"預期輸出中,兩個Pod掛載的PVC一致,共用NAS檔案系統的同一子目錄。
控制台
重複以下操作,分別建立2個Deployment並掛載同一PVC,使其共用同一個NAS檔案系統的同一個子目錄。
在ACK叢集列表頁面,單擊目的地組群名稱,在叢集詳情頁左側導覽列,選擇。
單擊使用鏡像建立,按照頁面提示完成應用的配置和建立。
主要參數如下,其他參數保持預設即可。詳見建立無狀態工作負載Deployment。
配置項
參數
說明
應用基本資料
副本數量
Deployment的副本數量。
容器配置
鏡像名稱
用於部署應用的鏡像地址。
所需資源
所需的vCPU和記憶體資源。
資料卷
單擊增加雲端儲存聲明,然後完成參數配置。
掛載源:選擇之前建立的PVC。
容器路徑:輸入NAS檔案系統要掛載到的容器路徑。
部署完成後,可在無狀態頁面單擊應用程式名稱,在容器組頁簽下確認Pod已正常運行(狀態為Running)。
後續結果驗證可參見驗證共用儲存和持久化儲存。
方式二:使用sharepath方式掛載
此方式下,所有基於此StorageClass建立的PVC,建立PV時不會建立實際的目錄,而會直接使用StorageClass中設定的路徑,即每個PV實際上會對應同一個NAS目錄。
1. 建立StorageClass
StorageClass作為動態磁碟區的供應模板,定義了儲存資源的來源和行為。
kubectl
參見以下內容建立alicloud-nas-sharepath.yaml。
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: alicloud-nas-sharepath mountOptions: - nolock,tcp,noresvport - vers=3 parameters: volumeAs: sharepath server: "0cd8b4a576-g****.cn-hangzhou.nas.aliyuncs.com" path: "k8s" provisioner: nasplugin.csi.alibabacloud.com reclaimPolicy: Retain參數
描述
mountOptionsNAS的掛載參數,包括NFS協議版本等。預設使用v3協議掛載,可通過
vers=4.0方式指定協議版本。關於不同NAS類型支援的NFS協議,請參見NFS協議。parameters.volumeAs掛載方式,設定為
sharepath。parameters.serverNAS掛載點地址。
關於如何查看掛載點地址,請參見管理掛載點。
parameters.path待掛載的NAS子目錄。如果未設定,則預設掛載到根目錄。
如果NAS中沒有該目錄,系統會自動建立並進行掛載。
通用型NAS:根目錄為
/。極速型NAS:根目錄為
/share。掛載子目錄時,path需以/share開頭(如/share/data)。
provisioner驅動類型。使用阿里雲NAS CSI組件時固定為
nasplugin.csi.alibabacloud.com。reclaimPolicyPV的回收策略。使用sharepath時必須設定為
Retain。建立StorageClass。
kubectl create -f alicloud-nas-sharepath.yaml
控制台
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
單擊建立,配置StorageClass名稱(叢集內保持唯一)並選擇儲存卷類型為NAS,按照頁面提示完成StorageClass的建立。
配置項
說明
選擇掛載點
NAS檔案系統的掛載點地址。
儲存卷模式
儲存卷訪問模式。本樣本為共用目錄,即sharepath。
掛載路徑
待掛載的NAS子目錄。如果未設定,則預設掛載到根目錄。
如果NAS中沒有該目錄,系統會自動建立並進行掛載。
通用型NAS:根目錄為
/。極速型NAS:根目錄為
/share。掛載子目錄時,path需以/share開頭(如/share/data)。
回收策略
使用sharepath時必須設定為
Retain。掛載選項
NAS的掛載參數,包括NFS協議版本等。預設使用v3協議掛載,可通過
vers=4.0方式指定協議版本。關於不同NAS類型支援的NFS協議,請參見NFS協議。
2. 建立PVC
PVC 作為應用的儲存請求,將觸發 StorageClass 的動態供應機制,自動建立並綁定一個匹配的 PV。
為了實現跨命名空間的資料共用,本小節將在兩個命名空間下建立一個同名PVC。PVC 名稱相同,但位於不同命名空間,因此是獨立的資源。它們將通過同一StorageClass,在同一 NAS 檔案系統上分別獲得獨立 PV。
kubectl
建立命名空間ns1和ns2。
kubectl create ns ns1 kubectl create ns ns2參見以下內容建立pvc.yaml,分別在 ns1 和 ns2 命名空間下建立同名 PVC。
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: nas-csi-pvc namespace: ns1 spec: accessModes: - ReadWriteMany storageClassName: alicloud-nas-sharepath resources: requests: storage: 20Gi --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: nas-csi-pvc namespace: ns2 spec: accessModes: - ReadWriteMany storageClassName: alicloud-nas-sharepath resources: requests: storage: 20Gi參數
說明
accessModes訪問模式。可取值:
ReadWriteMany(預設):多節點讀寫。ReadWriteOnce:單節點讀寫。ReadOnlyMany:多節點唯讀。
storageClassName待綁定的StorageClass。
storage聲明所需使用的儲存卷的容量。預設情況下,此聲明主要作為資源請求,並不限制Pod實際可用的儲存空間。
NAS容量上限由規格決定,請參見通用型NAS和極速型NAS確認。
但當StorageClass的
allowVolumeExpansion為true時,此值將變為一個嚴格執行的硬性限制。CSI 將按照該配置設定NAS的目錄配額,限制PV的可用容量。建立PVC。
kubectl create -f pvc.yaml查看PV狀態,確認已為 PVC 自動建立並綁定了對應的 PV。
kubectl get pv預期輸出如下,兩個狀態 PV 均為
Bound,CLAIM顯示每個 PV 分別綁定到兩個命名空間下的 PVC(ns1/nas-csi-pvc和ns2/nas-csi-pvc)。NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE nas-0b448885-6226-4d22-8a5b-d0768c****** 20Gi RWX Retain Bound ns1/nas-csi-pvc alicloud-nas-sharepath <unset> 74s nas-bcd21c93-8219-4a11-986b-fd934a****** 20Gi RWX Retain Bound ns2/nas-csi-pvc alicloud-nas-sharepath <unset> 74s
控制台
建立命名空間。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇命名空間與配額。
單擊建立,安裝頁面提示建立命名空間ns1和ns2。
在叢集管理頁左側導覽列,選擇。
在命名空間ns1下,建立一個儲存聲明。
在儲存聲明頁面,選擇命名空間為ns1,按照頁面提示完成PVC的建立。
配置項
說明
儲存宣告類型
選擇NAS。
名稱
PVC名稱,在命名空間內保持唯一。
分配模式
選擇使用儲存類動態建立。
已有儲存類
單擊選擇儲存類,選擇此前建立的StorageClass。
總量
聲明所需使用的儲存卷的容量。預設情況下,此聲明主要作為資源請求,並不限制Pod實際可用的儲存空間。
NAS容量上限由規格決定,請參見通用型NAS和極速型NAS確認。
但當StorageClass的
allowVolumeExpansion為true時,此值將變為一個嚴格執行的硬性限制。CSI 將按照該配置設定NAS的目錄配額,限制PV的可用容量。訪問模式
訪問模式。可取值:
ReadWriteMany(預設):多節點讀寫。ReadWriteOnce:單節點讀寫。ReadOnlyMany:多節點唯讀。
參見上一步,在命名空間ns2下,再次建立一個PVC。
建立後,返回儲存聲明頁面,在命名空間ns1和ns2下,確認2個PVC均已綁定自動建立的PV。
3. 建立應用並掛載NAS
PVC建立後,可將其綁定的 PV 掛載到應用中。本小節在2個Namespace下分別建立應用,並掛載相應的PVC,從而讓它們共用StorageClass中定義的NAS子目錄。
kubectl
參見以下內容,分別建立
nginx-ns1.yaml和nginx-ns2.yaml。2個應用的配置基本一致,分別綁定相應Namespace下的PVC。
建立2個Deployment。
kubectl create -f nginx-ns1.yaml -f nginx-ns2.yaml查看Pod狀態。
kubectl get pod -A -l app=nginx預期輸出:
NAMESPACE NAME READY STATUS RESTARTS AGE ns1 nas-test-b75d5b6bc-***** 1/1 Running 0 2m19s ns2 nas-test-b75d5b6bc-***** 1/1 Running 0 2m11s查看 Pod 詳細配置,確認PVC掛載。
將
<namespace-name>、<pod-name>分別替換為實際NameSpace和Pod名稱。kubectl describe pod -n <namespace-name> <pod-name> | grep "ClaimName:"預期輸出中,兩個Pod分別掛載了
ns1/nas-csi-pvc和ns2/nas-csi-pvc。
控制台
在ACK叢集列表頁面,單擊目的地組群名稱,在叢集詳情頁左側導覽列,選擇。
在命名空間ns1下,建立一個Deployment,並掛載相應的PVC。
選擇命名空間為ns1,單擊使用鏡像建立。
按照頁面提示完成應用的建立。
主要參數如下,其他參數保持預設即可。詳見建立無狀態工作負載Deployment。
配置項
參數
說明
應用基本資料
副本數量
Deployment的副本數量。
容器配置
鏡像名稱
用於部署應用的鏡像地址。
所需資源
所需的vCPU和記憶體資源。
資料卷
單擊增加雲端儲存聲明,然後完成參數配置。
掛載源:選擇之前建立的PVC。
容器路徑:輸入NAS檔案系統要掛載到的容器路徑,如/data。
參見上一步,在命名空間ns2下,再次建立一個Deployment,並掛載相應的PVC。
返回無狀態頁面,在命名空間ns1和ns2下,分別查看2個Deployment的部署情況,確認Pod已正常Running,且掛載了對應的PVC。
後續結果驗證可參見驗證共用儲存和持久化儲存。
方式三:使用filesystem方式掛載
filesystem 模式適用於需要為應用動態建立和管理專屬 NAS 檔案系統及掛載點的情境。與sharepath不同,每個以filesystem建立的 PV 都對應一個獨立的 NAS 檔案系統執行個體。
一個 filesystem 類型的 PV 對應一個獨立的 NAS 檔案系統和一個掛載點。
filesystem類型的PV刪除時預設保留NAS檔案系統和掛載點。如需在刪除PV時同步刪除NAS檔案系統和掛載點,需在StorageClass中進行以下配置:
reclaimPolicy: Deleteparameters.deleteVolume: "true"
使用ACK專有叢集時,需授予csi-provisioner相應的許可權。
1. 建立StorageClass
2. 建立PVC
3. 建立應用並掛載NAS
驗證共用儲存和持久化儲存
成功部署應用後,可驗證儲存卷是否按預期工作。本小節以subpath 模式下建立的 nas-test-1 和 nas-test-2 為例進行驗證。
共用儲存 | 持久化儲存 |
在一個Pod中建立檔案,然後在另一個Pod中查看檔案,驗證資料的共用儲存。
| 重建Deployment,在建立Pod中查看檔案系統中的資料是否存在,驗證資料的持久化儲存。
|
適用於生產環境
安全與資料保護
使用Retain回收策略: 推薦將StorageClass的
reclaimPolicy設定為Retain,防止因誤刪PVC而導致後端資料被刪除。使用許可權組進行存取控制:NAS通過許可權組來管理網路存取權限。請遵循最小許可權原則,在許可權組中僅添加叢集節點的私網IP地址或其所屬的vSwitch網段,避免授權範圍過大(如
0.0.0.0/0)。
效能與成本最佳化
選擇合適的NAS類型:參見檔案系統選型,根據應用對IOPS和輸送量的要求合理選擇NAS類型。
最佳化掛載選項 (
mountOptions):根據工作負載特性調整NFS掛載參數。例如,使用vers=4.0或vers=4.1協議版本可能在某些情境下獲得更好的效能和檔案鎖定能力。對於大規模檔案讀寫,可測試調整rsize和wsize參數以最佳化讀寫效能。
營運與可靠性
配置健全狀態檢查:為應用Pod配置存活探針(Liveness Probe),檢查掛載點是否正常。當掛載失效時,ACK可自動重啟Pod,觸發儲存卷的重新掛載。
監控與警示:利用容器儲存監控配置警示,及時發現儲存卷的異常或效能瓶頸。
資源釋放指引
為避免產生預期外費用,當您不再需要使用NAS儲存卷時,請按照以下順序釋放相關資源。
刪除工作負載
操作:刪除所有使用該NAS儲存卷的應用(如Deployment、StatefulSet等)。此操作將停止應用Pod對儲存卷的掛載和讀寫。
命令樣本:
kubectl delete deployment <your-deployment-name>
刪除PVC
操作:刪除應用所關聯的PVC。刪除PVC後,其綁定的PV和後端NAS的後續行為取決於對應StorageClass中定義的
reclaimPolicy。subpath模式
reclaimPolicy: Retain:刪除PVC後,其綁定的PV會進入Released狀態。PV對象和後端NAS上的對應子目錄及資料都會被保留,需手動刪除。reclaimPolicy: Delete:刪除PVC後,其綁定的PV會被自動刪除。後端NAS子目錄的處理方式取決於archiveOnDelete參數:archiveOnDelete: "true":後端資料不會被刪除,而是被重新命名歸檔為archived-{pvName}.{timestamp}。archiveOnDelete: "false":後端NAS上與該PV對應的子目錄及其中資料會被徹底刪除。請謹慎操作。
在 ACK Serverless 叢集中,由於許可權限制,即使配置為
reclaimPolicy: Delete,後端NAS目錄及資料也不會被刪除或歸檔,僅PV對象會被刪除。
sharepath模式
reclaimPolicy僅支援Retain。刪除PVC後,其綁定的PV會進入Released狀態。由於是共用目錄,PV對象和後端的NAS共用目錄及資料會被保留。filesystem模式
reclaimPolicy: Retain:刪除PVC後,其綁定的PV會進入Released狀態。PV對象、動態建立的後端NAS檔案系統及掛載點都會被保留。reclaimPolicy: Delete:刪除PVC後,其綁定的PV會被自動刪除。後端NAS檔案系統的處理方式取決於deleteVolume參數:deleteVolume: "false":後端NAS檔案系統和掛載點會被保留,需手動刪除。deleteVolume: "true":後端NAS檔案系統和掛載點會被自動刪除。請謹慎操作。
命令樣本:
kubectl delete pvc <your-pvc-name>
刪除PV
操作:當PV處於
Available或Released狀態時,可執行刪除操作。此操作僅從Kubernetes叢集中移除該PV的定義,不會刪除後端NAS檔案系統上的資料。命令樣本:
kubectl delete pv <your-pv-name>
刪除後端NAS檔案系統(可選)
相關文檔
在掛載和使用NAS儲存卷的過程中,如果遇到問題,可參考以下文檔進行排查。
通過CNFS可以實現對NAS檔案系統的獨立管理,提升NAS檔案系統的效能和QoS控制。具體操作,請參見通過CNFS管理NAS檔案系統。
通過subpath掛載的NAS支援目錄配額功能,請參見為NAS動態儲存裝置卷設定目錄配額。
