介紹
容器中的文件在磁盤上是臨時存放的,當容器崩潰或停止時容器上面的數據未保存, 因此在容器生命周期內創(chuàng)建或修改的所有文件都將丟失。 在崩潰期間,kubelet 會以干凈的狀態(tài)重新啟動容器。 當多個容器在一個 Pod 中運行并且需要共享文件時,會出現另一個問題,跨所有容器設置和訪問共享文件系統(tǒng)具有一定的挑戰(zhàn)性。K8S 卷(Volume) 這一抽象概念能夠解決這兩個問題。
存儲卷的分類
hostPath 存儲
警告:
HostPath 卷存在許多安全風險,最佳做法是盡可能避免使用 HostPath。 當必須使用 HostPath 卷時,它的范圍應僅限于所需的文件或目錄,并以只讀方式掛載。HostPath 僅適用于單個節(jié)點上的存儲,不支持跨節(jié)點訪問(如果Pod偏移到其他宿主機節(jié)點上面可能會出問題)。
支持的 type 值如下:
type值 | 說明 |
---|---|
空字符串(默認)用于向后兼容,這意味著在安裝 hostPath 卷之前不會執(zhí)行任何檢查 | |
DirectoryOrCreate | 如果在給定路徑上什么都不存在,那么將根據需要創(chuàng)建空目錄,權限設置為 0755,具有與 kubelet相同的組和屬主信息 |
Directory | 在給定路徑上必須存在的目錄 |
FileOrCreate | 如果在給定路徑上什么都不存在,那么將在那里根據需要創(chuàng)建空文件,權限設置為 0644,具有與 kubelet 相同的組和所有權 |
File | 在給定路徑上必須存在的文件 |
Socket | 在給定路徑上必須存在的 UNIX 套接字 |
CharDevice | 在給定路徑上必須存在的字符設備 |
BlockDevice | 在給定路徑上必須存在的塊設備 |
hostPath 配置示例
如有多個節(jié)點,在使用 hostPath 存儲需要指定pod部署在那個節(jié)點上面,例如在Pod上面添加nodeSelector字段指定到某一個節(jié)點(需要提前給節(jié)點打標簽)
apiVersion: v1
kind: Pod
metadata:
name: test-pd
spec:
containers:
# nodeSelector: # 指定部署到特定節(jié)點上面
# disktype: ssd # 標簽
- image: nginx
name: test-container
volumeMounts:
- mountPath: /test-pd
name: test-volume
volumes:
- name: test-volume
hostPath:
path: /data # 宿主機上目錄位置,注意權限
type: Directory # 此字段為可選,詳細解釋在上面
emptyDir
定義了 emptyDir 卷的 Pod,在 Pod 被指派到某節(jié)點時此卷會被創(chuàng)建。emptyDir 卷最初是空的。Pod 中的容器掛載 emptyDir 卷的路徑可能相同也可能不同,但這些容器都可以讀寫 emptyDir 卷中相同的文件。 當 Pod 因為某些原因被從節(jié)點上刪除時,emptyDir 卷中的數據也會被永久刪除。主要作用是為了共享數據用。
emptyDir 卷存儲可以使用任何磁盤、SSD 或網絡存儲,這取決于你的環(huán)境。 你可以將 emptyDir.medium 字段設置為 “Memory”, 以告訴 Kubernetes 為你掛載 tmpfs(基于 RAM 的文件系統(tǒng))。雖然 tmpfs 速度非???,但是要注意它與磁盤不同, 并且你所寫入的所有文件都會計入容?的內存消耗,受容?內存限制約束
說明:
容器崩潰并不會導致 Pod 被從節(jié)點上移除,因此容器崩潰期間 emptyDir 卷中的數據是安全的。
emptyDir 配置示例
apiVersion: v1
kind: Pod
metadata:
name: test-pd
spec:
containers:
- image: nginx
name: test-container
volumeMounts:
- mountPath: /cache
name: cache-volume
volumes:
- name: cache-volume
emptyDir:
sizeLimit: 500Mi # 寫入磁盤的大小限制,如果沒限制直接刪除這行 在emptyDir: []即可
nfs
nfs 卷能將 NFS (網絡文件系統(tǒng)) 掛載到你的 Pod 中。 不像 emptyDir 那樣會在刪除 Pod 的同時也會被刪除,nfs 卷的內容在刪除 Pod 時會被保存,卷只是被卸載。 這意味著 nfs 卷可以被預先填充數據,并且這些數據可以在 Pod 之間共享。
配置示例
說明:
在使用 NFS 卷之前,你必須部署自己的 NFS 服務?才可以使用,這里不再敘述。
apiVersion: v1
kind: Pod
metadata:
name: test-pd
spec:
containers:
- image: registry.k8s.io/test-webserver
name: test-container
volumeMounts:
- mountPath: /my-nfs-data
name: test-volume
volumes:
- name: test-volume
nfs:
server: my-nfs-server.example.com # nfs服務的地址
path: /my-nfs-volume # nfs 服務共享的路徑
readOnly: true
PV和PVC的使用
在 Kubernetes 中,PV(PersistentVolume)和 PVC(PersistentVolumeClaim)是用于持久化存儲的核心概念,其本身并沒有存儲的相關功能所以需要準備后端存儲的環(huán)境。
-
PersistentVolume(PV):PV 是集群中的一塊持久化存儲,它是集群管理員預先配置好的存儲資源。PV 可以是網絡存儲(如 NFS、GlusterFS、Ceph)、云存儲(如 AWS EBS、Azure Disk)、本地存儲(HostPath)等。PV 與存儲后端進行綁定,表示集群中的可用存儲資源,支持的后端存儲類型詳情請查看K8S官方文檔
-
PersistentVolumeClaim(PVC):PVC 是 Pod 對 PV 的申請。PVC 定義了對存儲資源的需求,包括存儲容量、訪問模式和其他屬性。Pod 中的容器可以通過 PVC 來申請并使用 PV 提供的持久化存儲。Kubernetes 會根據 PVC 的需求匹配可用的 PV,并將其動態(tài)綁定到 Pod 中。
PV(PersistentVolume)
下面是 hostPath PersistentVolume 的配置文件:
apiVersion: v1
kind: PersistentVolume
metadata:
labels:
type: local
name: task-pv-volume
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 10Gi
hostPath:
path: /mnt
type: ""
persistentVolumeReclaimPolicy: Recycle
storageClassName: manual
volumeMode: Filesystem
關鍵詞解釋
- spec: capacity: storage: 10Gi:定義了 PV 的存儲容量為 10Gi。
- volumeMode: Filesystem:指定了 PV 的卷模式為文件系統(tǒng)。
- accessModes: - ReadWriteOnce:指定了 PV 的訪問模式為 ReadWriteOnce,表示此 PV 只能被單個節(jié)點掛載為讀寫模式。
- persistentVolumeReclaimPolicy: Recycle:指定了 PV 回收策略為 Recycle,表示當 PV 被釋放時,其存儲資源將被重新使用。
- storageClassName: manual:指定了 PV 的存儲類名稱為 slow。
- hostPath.path:指定了 PV 的路徑。在這里,path 指定了 PV 使用的主機路徑,即 “/mnt/data”。
- hostPath.type:指定 PV 所使用的主機路徑的類型,不指定默認是:DirectoryOrCreate 還有 Directory 和 File 類型可選
pv存儲卷的回收策略
- 回收(Reclaiming) :當用戶不再使用其存儲卷時,他們可以從 API 中將 PVC 對象刪除, 從而允許該資源被回收再利用。
- 保留(Retain):回收策略 Retain 使得用戶可以手動回收資源。
- 刪除(Delete):對于支持 Delete 回收策略的卷插件,刪除動作會將 PersistentVolume 對象從 Kubernetes 中移除,同時也會從外部基礎設施中移除所關聯(lián)的存儲資產。 動態(tài)制備的卷會繼承其 StorageClass 中設置的回收策略, 該策略默認為 Delete。
- 回收(Recycle):如果下層的卷插件支持,回收策略 Recycle 會在卷上執(zhí)行一些基本的擦除 (rm -rf /thevolume/*)操作,之后允許該卷用于新的 PVC 申領。(注意:回收策略 Recycle 已被廢棄。取而代之的建議方案是使用動態(tài)制備。)
卷模式
Kubernetes 支持兩種卷模式(volumeModes):
- Filesystem(文件系統(tǒng)):文件系統(tǒng)模式,表示 PV 中存儲的數據是文件系統(tǒng)數據,可以像普通文件系統(tǒng)一樣被掛載到 Pod 中,并且可以在容器中被讀取和寫入。默認的卷模式是 Filesystem。
- Block():塊模式,表示 PV 中存儲的數據是塊設備數據,可以將 PV 掛載為塊設備卷(例如 /dev/sdX),并且可以被容器用作塊設備。
訪問模式
- ReadWriteOnce:卷可以被一個節(jié)點以讀寫方式掛載。 ReadWriteOnce 訪問模式仍然可以在同一節(jié)點上運行的多個 Pod 訪問該卷。
- ReadOnlyMany:卷可以被多個節(jié)點以只讀方式掛載。
- ReadWriteMany:卷可以被多個節(jié)點以讀寫方式掛載。
- ReadWriteOncePod:(目前K8S版本在1.22及以上的才支持到1.29才GA)卷可以被單個 Pod 以讀寫方式掛載。 如果你想確保整個集群中只有一個 Pod 可以讀取或寫入該 PVC, 請使用 ReadWriteOncePod 訪問模式。
創(chuàng)建PV
kubectl create -f pv0003.yaml
創(chuàng)建好以后查看
kubectl get pv
NAME CAPACITY ACCESSMODES RECLAIMPOLICY STATUS CLAIM STORAGECLASS REASON AGE
pv0003 5Gi RWO Recycle Available manual 4s
PV狀態(tài)說明:
- NAME:PVC名字
- CAPACITY:PV大小
- ACCESSMODES:訪問模式
- RECLAIMPOLICY:回收策略
- STATUS:PV使用狀態(tài)
- STORAGECLASS: 動態(tài)存儲名字
- AGE:創(chuàng)建時間
在命令行接口(CLI)中,訪問模式也使用以下縮寫形式:
- RWO - ReadWriteOnce
- ROX - ReadOnlyMany
- RWX - ReadWriteMany
- RWOP - ReadWriteOncePod
PV每個階段的狀態(tài)
每個持久卷會處于以下階段(Phase)之一:
- Available:卷是一個空閑資源,尚未綁定到任何申領
- Bound:該卷已經綁定到某申領
- Released:所綁定的申領已被刪除,但是關聯(lián)存儲資源尚未被集群回收
- Failed:卷的自動回收操作失敗
使用 kubectl describe persistentvolume 查看已綁定到 PV 的 PVC 的名稱。
PVC(PersistentVolumeClaims)
創(chuàng)建一個PVC:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: myclaim
spec:
accessModes:
- ReadWriteOnce
volumeMode: Filesystem
resources:
requests:
storage: 5Gi
這里面的字段意思基本和PV里面的一樣,訪問模式和卷模式也是一樣的,就不再解釋了。
PV和PVC的綁定模式
匹配步驟:
- 檢查 PV 的狀態(tài):Kubernetes 控制器會查找狀態(tài)為 Available(可用)的 PV,這些 PV 尚未被其他 PVC 綁定。
- PV 屬性的匹配:控制器會檢查 PVC 的需求與 PV 的屬性是否匹配。這包括容量、訪問模式、持久性和標簽等。
- 針對 PVC 的需求選擇 PV:控制器會選擇滿足 PVC 所有需求的 PV,并嘗試將其與 PVC 綁定。
自動綁定
創(chuàng)建PV和PVC
apiVersion: v1
kind: PersistentVolume
metadata:
name: task1
labels:
type: local1
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: task-pv-claim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 9Gi
查看PV和PVC狀態(tài)
[root@master01 pv]# kubectl get pvc,pv
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
persistentvolumeclaim/task-pv-claim Bound task1 10Gi RWO 26s
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
persistentvolume/task1 10Gi RWO Retain Bound default/task-pv-claim 10m
都是已經綁狀態(tài)
根據標簽綁定
創(chuàng)建PV和PVC
apiVersion: v1
kind: PersistentVolume
metadata:
name: my-pv
labels:
desk: "test1" # 設置標簽
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /mnt
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
selector:
matchLabels:
desk: "test1" # 匹配PV的標簽
查看PV和PVC狀態(tài)
可以看到 my-pvc 已經綁定到 my-pv 上面了,如果沒有標簽自動綁定的話 則會綁定到 task2 的PV上面
[root@master01 pv]# kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
my-pv 10Gi RWO Retain Bound default/my-pvc 3s
task1 10Gi RWO Retain Available 46s
task2 5Gi RWO Retain Available 46s
[root@master01 pv]# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
my-pvc Bound my-pv 10Gi RWO 12s
指定PV名字綁定
apiVersion: v1
kind: PersistentVolume
metadata:
name: my-pv
spec:
capacity:
storage: 20Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /mnt/data
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteOnce
volumeName: my-pv # 指定要綁定的 PV 的名稱
resources:
requests:
storage: 5Gi
查看PV和PVC綁定情況
[root@master01 pv]# kubectl get pv,pvc
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
persistentvolume/my-pv 20Gi RWO Retain Bound default/my-pvc 5s
persistentvolume/task1 10Gi RWO Retain Available 158m
persistentvolume/task2 5Gi RWO Retain Available 158m
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
persistentvolumeclaim/my-pvc Pending my-pv 0 5s
注意事項
PV 和 PVC 之間的綁定是一對一的關系。一個 PVC 只能綁定到一個 PV 上,而一個 PV 可以同時被多個 PVC 綁定。如果沒有足夠的 PV 來滿足 PVC 的需求,或者沒有滿足 PVC 的要求的可用 PV,則 PVC 將處于 Pending(掛起)狀態(tài),直到滿足條件為止。
Pod使用PVC存儲
創(chuàng)建PV和PVC:
apiVersion: v1
kind: PersistentVolume
metadata:
name: task-pv-volume
labels:
type: local
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/data"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: task-pv-claim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
創(chuàng)建一個Pod使用上面這個PVC
apiVersion: v1
kind: Pod
metadata:
name: task-pv-pod
spec:
containers:
- name: task-pv-container
image: nginx
ports:
- containerPort: 80
name: "http-server"
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: task-pv-storage
volumes:
- name: task-pv-storage
persistentVolumeClaim: # 指定使用PVC存儲
claimName: task-pv-claim # PVC存儲的名字
在Pod里面多次掛在PVC
apiVersion: v1
kind: Pod
metadata:
name: test
spec:
containers:
- name: test
image: nginx
volumeMounts:
# 網站數據掛載
- name: config
mountPath: /usr/share/nginx/html
subPath: html
# Nginx 配置掛載
- name: config
mountPath: /etc/nginx/nginx.conf
subPath: nginx.conf
volumes:
- name: config
persistentVolumeClaim:
claimName: test-nfs-claim
PVC綁定常見問題
創(chuàng)建PVC后,一直綁定不上PV(Pending):
- PVC的空間申請大小大于PV的大小
- PVC的StorageClassName沒有和PV的一致
- PVC的accessModes和PV的不一致
Pod掛在PVC后,一直處于Pending狀態(tài):
- PVC沒有被創(chuàng)建成功,或者被創(chuàng)建
- PVC和Pod不在同一個Namespace(PV是沒有命名空間的,PVC是有有命名空間概念的)
刪除PVC后k8s會創(chuàng)建一個用于回收的Pod,根據PV的回收策略進行pv的回收,回收完以后PV的狀態(tài)就會變成可被綁定的狀態(tài)也就是空閑狀態(tài),其他的Pending狀態(tài)的PVC如果匹配到了這個PV,他就能和這個PV進行綁定。
動態(tài)存儲(StorageClass)
主要功能:
- 動態(tài)配置持久存儲:StorageClass 允許管理員定義多種類型的存儲,包括云存儲、本地存儲、網絡存儲等,并且可以根據用戶的請求動態(tài)創(chuàng)建 PersistentVolume(PV)。
- 自動綁定:一旦 PVC 請求了特定的存儲類,Kubernetes 將根據 StorageClass 的定義自動創(chuàng)建 PV,并將其綁定到 PVC 上,簡化了存儲資源的管理過程。
- 多種屬性支持:StorageClass 允許管理員定義存儲的各種屬性,如容量、訪問模式、持久性、副本數等,以滿足不同應用程序的需求。
- 靈活性和可擴展性:管理員可以根據實際需求定義多個不同的 StorageClass,并根據應用程序的需求選擇合適的存儲類。
環(huán)境準備
在開始之前請安裝后端存儲,我這里使用的是CEPH存儲并且安裝到K8S集群里,下面是安裝方法。(所有環(huán)境中如果有用到的安裝包或者容器鏡像什么的都可以私信我)
安裝方法:點擊跳轉
查看已經部署好的StorageClass
注意: 本次演示默認已經安裝好ceph存儲。
## sc 是 StorageClass 簡寫
[root@master01 ~]# kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
rook-ceph-rbd rook-ceph.rbd.csi.ceph.com Retain Immediate true 228d
rook-cephfs rook-ceph.cephfs.csi.ceph.com Retain Immediate true 228d
- rook-ceph-rbd :這個是塊存儲。區(qū)別:只能由一個節(jié)點進行讀寫操作
- rook-cephfs:這個是共享文件存儲。區(qū)別:可以在多個節(jié)點上同時掛載和訪問。
適用場景:
- RBD:適用于需要高性能、低延遲和可擴展性的場景,如數據庫、塊存儲卷等。
- CephFS:適用于需要共享數據、訪問文件系統(tǒng)的場景,如共享存儲、容器卷等。
查看 rook-ceph-rbd
查看命令
kubectl get sc rook-ceph-rbd -oyaml
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: rook-ceph-rbd
parameters:
clusterID: rook-ceph
csi.storage.k8s.io/controller-expand-secret-name: rook-csi-rbd-provisioner
csi.storage.k8s.io/controller-expand-secret-namespace: rook-ceph
csi.storage.k8s.io/fstype: ext4
csi.storage.k8s.io/node-stage-secret-name: rook-csi-rbd-node
csi.storage.k8s.io/node-stage-secret-namespace: rook-ceph
csi.storage.k8s.io/provisioner-secret-name: rook-csi-rbd-provisioner
csi.storage.k8s.io/provisioner-secret-namespace: rook-ceph
imageFeatures: layering
imageFormat: "2"
pool: replicapool
provisioner: rook-ceph.rbd.csi.ceph.com
reclaimPolicy: Retain
volumeBindingMode: Immediate
關鍵字段解釋
- kind:表示這是 Kubernetes 存儲 API 的版本,而 kind 設置為 StorageClass,表示這是一個 StorageClass 對象。
- allowVolumeExpansion: true :這個字段用于指示是否允許對使用這個 StorageClass 創(chuàng)建的持久卷進行擴展。
- metadata:這個部分包含有關 StorageClass 的元數據,其中最重要的是 name 字段,它指定了 StorageClass 的名稱,這里是 “rook-ceph-rbd”。
- parameters:這個字段定義了傳遞給 StorageClass 的參數。在這個例子中,這些參數包括:
-
- clusterID:Rook Ceph 集群的 ID。
-
- csi.storage.k8s.io/controller-expand-secret-name : 的名稱和命名空間。
-
- csi.storage.k8s.io/controller-expand-secret-namespace:指定擴展控制器所需的密鑰.
-
- csi.storage.k8s.io/fstype:指定了文件系統(tǒng)類型。
-
- csi.storage.k8s.io/node-stage-secret-name 和 csi.storage.k8s.io/node-stage-secret-namespace:這些參數用于指定節(jié)點階段操作所需的密鑰的名稱和命名空間。
csi.storage.k8s.io/provisioner-secret-name 和 csi.storage.k8s.io/provisioner-secret-namespace:這些參數用于指定提供程序所需的密鑰的名稱和命名空間。
- csi.storage.k8s.io/node-stage-secret-name 和 csi.storage.k8s.io/node-stage-secret-namespace:這些參數用于指定節(jié)點階段操作所需的密鑰的名稱和命名空間。
- imageFeatures:這個參數指定了卷的特性,即它包含了支持鏡像層疊(layering)的功能。鏡像層疊允許在卷上創(chuàng)建多個鏡像,每個鏡像可以包含自己的修改,而不會影響其他鏡像。
- imageFormat:這個參數指定了卷的格式,即它使用的是格式版本 2。格式版本 2 是 RBD 卷的一種格式,它支持更高級的功能和性能,例如支持更大的卷和更好的快照管理。
- pool:指定了用于存儲的池名稱。
- provisioner:這個字段指定了用于創(chuàng)建持久卷的存儲提供程序。在這里,使用的提供程序是 rook-ceph.rbd.csi.ceph.com,表明這個 StorageClass 使用了 Rook Ceph 的 RBD(Rados Block Device)CSI(Container Storage Interface)提供程序。
- reclaimPolicy:這個字段指定了持久卷的回收策略。在這里,設置為 Retain,表示當與此 StorageClass 關聯(lián)的持久卷不再需要時,它們的資源應該保留而不被自動刪除。
- volumeBindingMode:這個字段指定了持久卷的綁定模式。在這里,設置為 Immediate,表示持久卷應該立即綁定到聲明,即創(chuàng)建聲明時應立即創(chuàng)建卷。
StorageClass 使用方法
創(chuàng)建 StatefulSet 使用
部署成功以后 StorageClass 會根據PVC申請的去自動創(chuàng)建PV并綁定好
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: my-statefulset
spec:
serviceName: "my-statefulset"
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-container
image: nginx:latest
ports:
- containerPort: 80
volumeMounts:
- name: my-persistent-storage
mountPath: /usr/share/nginx/html
volumeClaimTemplates:
- metadata:
name: my-persistent-storage
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "rook-ceph-rbd" # 指定剛剛查出來的 StorageClass 名字
resources:
requests:
storage: 5Gi
使用PVC申請動態(tài)存儲
創(chuàng)建PVC成功以后會自動創(chuàng)建PV并綁定好,后面Pod使用方式和上面手動創(chuàng)建PV和PVC的方式一樣。文章來源:http://www.zghlxwxcb.cn/news/detail-853376.html
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: rook-ceph-rbd # 指定要使用的 StorageClass 的名稱
resources:
requests:
storage: 1Gi # 請求 1GB 的存儲容量
PVC擴容
直接修改 “storage: 1Gi ” 修改為2G即可,但是生效還需要等幾分鐘。文章來源地址http://www.zghlxwxcb.cn/news/detail-853376.html
kubectl edit pvc my-pvc
到了這里,關于K8S臨時存儲-本地存儲-PV和PVC的使用-動態(tài)存儲(StorageClass)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!