国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

K8S持久化存儲--- PVC和PV的存儲

這篇具有很好參考價值的文章主要介紹了K8S持久化存儲--- PVC和PV的存儲。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1. k8s PV 是什么?

PersistentVolume ( PV )是群集中的一塊存儲,由管理員配置或使用存儲類動態(tài)配置。 它是集群中的資源,就像 pod 是 k8s 集群資源一樣。 PV是容量插件,如 Volumes ,其生命周期獨立于使用 PV 的任何單個 pod 。

2. k8s PVC 是什么?

PersistentVolumeClaim ( PVC )是一個持久化存儲卷,我們在創(chuàng)建 pod 時可以定義這個類型的存儲卷。 它類似于一個pod 。 Pod 消耗節(jié)點資源,PVC 消耗 PV 資源。 Pod 可以請求特定級別的資源(CPU 和
內(nèi)存)。 pvc 在申請 pv 的時候也可以請求特定的大小和訪問模式(例如,可以一次讀寫或多次只讀)。

3. k8s PVC 和 和 PV 工作原理

PV 是群集中的資源。 PVC 是對這些資源的請求。
PV 和 PVC 之間的相互作用遵循以下生命周期:

3.1 pv 的供應(yīng)方式

可以通過兩種方式配置 PV :靜態(tài)或動態(tài)。

靜態(tài)的

集群管理員創(chuàng)建了許多 PV 。它們包含可供群集用戶使用的實際存儲的詳細(xì)信息。它們存在于Kubernetes API 中,可供使用。**

動態(tài)的

當(dāng)管理員創(chuàng)建的靜態(tài) PV 都不匹配用戶的 PersistentVolumeClaim 時,群集可能會嘗試為 PVC 專門動態(tài)配置卷。此配置基于 StorageClasses , PVC 必須請求存儲類,管理員必須創(chuàng)建并配置該類,以便進(jìn)行動態(tài)配置。**

3.2 綁定

用戶創(chuàng)建 c pvc 并指定需要的資源和訪問模式。在找到可用 pv 之前,pvc 會保持未綁定狀態(tài).

3.3 使用

3.3.1 需要找一個存儲服務(wù)器,把它劃分成多個存儲空間;
3.3.2 k8s 管理員可以把這些存儲空間定義成多個 pv ;
3.3.3 在 pod 中使用 pvc 類型的存儲卷之前需要先創(chuàng)建 pvc ,通過定義需要使用的 pv 的大小和對應(yīng)的訪問模式,找到合適的 pv ;
3.3.4 pvc 被創(chuàng)建之后,就可以當(dāng)成存儲卷來使用了,我們在定義 pod 時就可以使用這個 c pvc 的存儲卷;
3.3.5 pvc 和 和 pv 它們是一 一對應(yīng)的關(guān)系, pv 如果被 pvc 綁定了,就不能被其他 pvc 使用了;
3.3.6 我們在創(chuàng)建 pvc 的時候,應(yīng)該確保和底下的 pv 能綁定,如果沒有合適的 pv ,那么 pvc 就會處于 pending 狀態(tài)。

3.4 回收策略

當(dāng)我們創(chuàng)建 pod 時如果使用 pvc 做為存儲卷,那么它會和 pv 綁定,當(dāng)刪除 pod ,pvc 和 pv 綁定就會解除,解除之后和 pvc 綁定的 pv 卷里的數(shù)據(jù)需要怎么處理,目前,卷可以保留(Retain),回收(Recycle,被廢棄了)或刪除(Delete)。

3.4.1 Retain

當(dāng)刪除 pvc 的時候, pv 仍然存在,處于 released 狀態(tài),但是它不能被其他 pvc 綁定使用,里面的數(shù)據(jù)還是存在的,當(dāng)我們下次再使用的時候,數(shù)據(jù)還是存在的,這個是默認(rèn)的回收策略.

3.4.2 Delete

刪除 pvc 時即會從 Kubernetes 中移除 PV ,也會從相關(guān)的外部設(shè)施中刪除存儲資產(chǎn).

第一:創(chuàng)建 nfs 共享目錄

[root@k8s-master ~]# mkdir  -p  /data/pv/v{1,2,3,4,5,6,7,8,9,10} 
[root@k8s-master ~]# cat >> /etc/exports <<EOF
/data/pv/v1  *(rw,no_root_squash) 
/data/pv/v2  *(rw,no_root_squash)
/data/pv/v3  *(rw,no_root_squash) 
/data/pv/v4  *(rw,no_root_squash) 
/data/pv/v5  *(rw,no_root_squash) 
/data/pv/v6  *(rw,no_root_squash) 
/data/pv/v7  *(rw,no_root_squash) 
/data/pv/v8  *(rw,no_root_squash) 
/data/pv/v9  *(rw,no_root_squash)
/data/pv/v10 *(rw,no_root_squash)
EOF
[root@k8s-master ~]# exportfs -arv #使配置生效

第二:創(chuàng)建 pv 的資源清單文件


cat > pv.yaml <<EOF
apiVersion: v1
kind: PersistentVolume
metadata:
  name:  v1
spec:
  capacity:
    storage: 1Gi  #pv的存儲空間容量
  accessModes: ["ReadWriteOnce"]
  nfs:
    path: /data/volume_test/v1 #把nfs的存儲空間創(chuàng)建成pv
    server: 192.168.243.180     #nfs服務(wù)器的地址
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name:  v2
spec:
  persistentVolumeReclaimPolicy: Delete
  capacity:
      storage: 2Gi
  accessModes: ["ReadWriteMany"]
  nfs:
    path: /data/volume_test/v2
    server: 192.168.243.180
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name:  v3
spec:
  capacity:
      storage: 3Gi
  accessModes: ["ReadOnlyMany"]
  nfs:
    path: /data/volume_test/v3
    server: 192.168.243.180
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name:  v4
spec:
  capacity:
      storage: 4Gi
  accessModes: ["ReadWriteOnce","ReadWriteMany"]
  nfs:
    path: /data/volume_test/v4
    server: 192.168.243.180
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name:  v5
spec:
  capacity:
      storage: 5Gi
  accessModes: ["ReadWriteOnce","ReadWriteMany"]
  nfs:
    path: /data/volume_test/v5
    server: 192.168.243.180
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name:  v6
spec:
  capacity:
      storage: 6Gi
  accessModes: ["ReadWriteOnce","ReadWriteMany"]
  nfs:
    path: /data/volume_test/v6
    server: 192.168.243.180
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name:  v7
spec:
  capacity:
      storage: 7Gi
  accessModes: ["ReadWriteOnce","ReadWriteMany"]
  nfs:
    path: /data/volume_test/v7
    server: 192.168.243.180
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name:  v8
spec:
  capacity:
      storage: 8Gi
  accessModes: ["ReadWriteOnce","ReadWriteMany"]
  nfs:
    path: /data/volume_test/v8
    server: 192.168.243.180
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name:  v9
spec:
  capacity:
      storage: 9Gi
  accessModes: ["ReadWriteOnce","ReadWriteMany"]
  nfs:
    path: /data/volume_test/v9
    server: 192.168.243.180
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name:  v10
spec:
  capacity:     
      storage: 10Gi
  accessModes: ["ReadWriteOnce","ReadWriteMany"]
  nfs:
    path: /data/volume_test/v10  
    server: 192.168.243.180
EOF
kubectl apply -f pv.yaml #創(chuàng)建pv資源
[root@k8s-master mqq]# kubectl get pv #查看pv資源,#STATUS 是Available ,表示pv 是可用的
NAME   CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
v1     1Gi        RWO            Retain           Available                                   5s
v10    10Gi       RWO,RWX        Retain           Available                                   5s
v2     2Gi        RWX            Delete           Available                                   5s
v3     3Gi        ROX            Retain           Available                                   5s
v4     4Gi        RWO,RWX        Retain           Available                                   5s
v5     5Gi        RWO,RWX        Retain           Available                                   5s
v6     6Gi        RWO,RWX        Retain           Available                                   5s
v7     7Gi        RWO,RWX        Retain           Available                                   5s
v8     8Gi        RWO,RWX        Retain           Available                                   5s
v9     9Gi        RWO,RWX        Retain           Available                                   5s

第三:創(chuàng)建 pvc,和符合條件的 pv 綁定

cat > pvc.yaml <<EOF
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-pvc
spec:
  accessModes: ["ReadWriteMany"]
  resources:
    requests:
      storage: 2Gi
EOF

kubectl apply -f pvc.yaml
[root@k8s-master mqq]# kubectl get pvc ##和v2綁定了
NAME     STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
my-pvc   Bound    v2       2Gi        RWX                           19s
[root@k8s-master mqq]# 
[root@k8s-master mqq]# kubectl get pv
NAME   CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM            STORAGECLASS   REASON   AGE
v1     1Gi        RWO            Retain           Available                                            5m25s
v10    10Gi       RWO,RWX        Retain           Available                                            5m25s
v2     2Gi        RWX            Delete           Bound       default/my-pvc                           5m25s
v3     3Gi        ROX            Retain           Available                                            5m25s
v4     4Gi        RWO,RWX        Retain           Available                                            5m25s
v5     5Gi        RWO,RWX        Retain           Available                                            5m25s
v6     6Gi        RWO,RWX        Retain           Available                                            5m25s
v7     7Gi        RWO,RWX        Retain           Available                                            5m25s
v8     8Gi        RWO,RWX        Retain           Available                                            5m25s
v9     9Gi        RWO,RWX        Retain           Available                                            5m25s
[root@k8s-master mqq]# kubectl get pvc #pvc 的名字- 綁定到 pv 綁定的是v2這個pv-pvc 可使用的容量是 2G
NAME     STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
my-pvc   Bound    v2       2Gi        RWX                           59s
[root@k8s-master mqq]# 

第四:創(chuàng)建 pod ,掛載 pvc

cat > pod_pvc.yaml <<EOF
apiVersion: v1
kind: Pod
metadata:
  name: pod-pvc
spec:
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent
    volumeMounts:
    - name: nginx-html
      mountPath: /usr/share/nginx/html
  volumes:
  - name: nginx-html
    persistentVolumeClaim:
      claimName: my-pvc
EOF

kubectl apply -f pod_pvc.yaml
[root@k8s-master mqq]# kubectl get pods
NAME      READY   STATUS    RESTARTS   AGE
pod-pvc   1/1     Running   0          34s
[root@k8s-master mqq]# 

第五: 驗證結(jié)果

[root@k8s-master mqq]# kubectl get pods
NAME      READY   STATUS    RESTARTS   AGE
pod-pvc   1/1     Running   0          4m48s
[root@k8s-master mqq]# kubectl exec -it pod-pvc -- /bin/bash #進(jìn)入pod
root@pod-pvc:/# cd /usr/share/nginx/html/
root@pod-pvc:/usr/share/nginx/html# ls
root@pod-pvc:/usr/share/nginx/html# echo "hello weixin mqq759035366" > index.html #寫入一個網(wǎng)頁信息
root@pod-pvc:/usr/share/nginx/html# ls
index.html
root@pod-pvc:/usr/share/nginx/html# cat index.html 
hello weixin mqq759035366
root@pod-pvc:/usr/share/nginx/html# 
[root@k8s-master pv]# cd /data/pv/v2 #因為pvc綁定的是pv是v2目錄
[root@k8s-master v2]# ls
index.html
[root@k8s-master v2]# pwd
/data/pv/v2
[root@k8s-master v2]# cat index.html 
hello weixin mqq759035366
[root@k8s-master v2]# 
#刪除pod,pvc和pv后,查看數(shù)據(jù)文件是否存在
[root@k8s-master mqq]# ll
total 12
-rw-r--r-- 1 root root  301 Apr  9 22:18 pod_pvc.yaml
-rw-r--r-- 1 root root  153 Apr  9 22:17 pvc.yaml
-rw-r--r-- 1 root root 2152 Apr  9 22:17 pv.yaml
[root@k8s-master mqq]# kubectl delete -f pod_pvc.yaml 
pod "pod-pvc" deleted
[root@k8s-master mqq]# kubectl delete -f pvc.yaml 
persistentvolumeclaim "my-pvc" deleted
[root@k8s-master mqq]# kubectl delete -f pv.yaml 
persistentvolume "v1" deleted
persistentvolume "v2" deleted
persistentvolume "v3" deleted
persistentvolume "v4" deleted
persistentvolume "v5" deleted
persistentvolume "v6" deleted
persistentvolume "v7" deleted
persistentvolume "v8" deleted
persistentvolume "v9" deleted
persistentvolume "v10" deleted
[root@k8s-master mqq]# 
[root@k8s-master v2]# pwd
/data/pv/v2
[root@k8s-master v2]# ls
index.html
[root@k8s-master v2]# cat index.html  #數(shù)據(jù)依然存在
hello weixin mqq759035366
[root@k8s-master v2]# 

第六:使用 pvc 和 pv 的注意事項

6.1 、 我們每次創(chuàng)建 pvc 的時候,需要事先有劃分好的 pv , 這樣可能不方便,那么可以在創(chuàng)建 pvc 的時候直接動態(tài)創(chuàng)建一個 pv 這個存儲類, pv 事先是不存在的;
6.2 pvc 和 pv 綁定,如果使用默認(rèn)的回收策略 retain ,那么刪除 pvc 之后,pv 會處于 released 狀態(tài),我們想要繼續(xù)使用這個 pv ,需要手動刪除 pv ,刪除 pv ,不會刪除 pv里的數(shù)據(jù),當(dāng)我們重新創(chuàng)建 pvc 時還會和這個最匹配的 pv 綁定,數(shù)據(jù)還是原來數(shù)據(jù),不會丟失 。
文章來源地址http://www.zghlxwxcb.cn/news/detail-409434.html

到了這里,關(guān)于K8S持久化存儲--- PVC和PV的存儲的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • k8s 持久化存儲

    k8s 持久化存儲

    我們繼續(xù)來查看 k8s 的卷,上一次我們分享了將磁盤掛載到容器中,empyDir 和 gitRepo 都是會隨著 pod 的啟動而創(chuàng)建,隨著 pod 的刪除而銷毀 那么我們或許會有這樣的需求,期望在 pod 上面讀取節(jié)點的文件或者使用節(jié)點的文件系統(tǒng)來訪問節(jié)點的設(shè)備 這個時候,我們就可以讓 hostP

    2024年02月16日
    瀏覽(25)
  • K8S之持久化存儲

    K8S之持久化存儲

    在K8S中部署的應(yīng)用都是以pod容器的形式運行的,假如部署數(shù)據(jù)庫服務(wù) 例如:MySQL、Redis等,需要對產(chǎn)生的數(shù)據(jù)做備份。如果pod不掛載數(shù)據(jù)卷,那pod被刪除或重啟后這些數(shù)據(jù)會隨之消失,想要長久的保留這些數(shù)據(jù)就要用到pod數(shù)據(jù)持久化存儲。 查看K8S支持哪些存儲 常用的如下:

    2024年04月09日
    瀏覽(25)
  • 【k8s存儲--使用OpenEBS做持久化存儲】

    【k8s存儲--使用OpenEBS做持久化存儲】

    使用OpenEBS,你可以將有持久化數(shù)據(jù)的容器,像對待其他普通容器一樣來對待。OpenEBS本身也是通過容器來部署的,支持Kubernetes、Swarm、Mesos、Rancher編排調(diào)度,存儲服務(wù)可以分派給每個pod、應(yīng)用程序、集群或者容器級別,包括: 跨節(jié)點的數(shù)據(jù)持久化 跨可用區(qū)和云廠商的數(shù)據(jù)同步

    2024年04月23日
    瀏覽(26)
  • (九)K8S數(shù)據(jù)持久化高級存儲

    NFS(Network File System)是一種分布式文件系統(tǒng)協(xié)議,用于通過網(wǎng)絡(luò)共享文件和目錄。它允許客戶端計算機(jī)通過網(wǎng)絡(luò)訪問和讀取遠(yuǎn)程服務(wù)器上的文件,就像它們在本地文件系統(tǒng)中一樣。NFS 是一種常見的網(wǎng)絡(luò)文件共享協(xié)議,在許多環(huán)境中被廣泛使用。 在 Kubernetes 中,NFS 可以作為一

    2024年02月06日
    瀏覽(25)
  • 飛天使-k8s基礎(chǔ)組件分析-持久化存儲

    飛天使-k8s基礎(chǔ)組件分析-持久化存儲

    emptyDir hostpath pv和pvc介紹 nfs作為靜態(tài)pv案例 nfs作為動態(tài)pv案例 使用本地文件夾作為pv 改變默認(rèn)存儲類及回收策略 參考文檔

    2024年02月11日
    瀏覽(51)
  • 持續(xù)集成部署-k8s-數(shù)據(jù)持久化-基本存儲方式

    關(guān)于k8s 數(shù)據(jù)持久化,可以先看下官方的介紹:

    2024年02月13日
    瀏覽(27)
  • 持續(xù)集成部署-k8s-數(shù)據(jù)持久化-高級存儲方式

    持久卷(PersistentVolume,PV) 是集群中的一塊存儲,可以由管理員事先制備, 或者使用

    2024年02月16日
    瀏覽(22)
  • Kubernetes基礎(chǔ)(二十三)-k8s持久化存儲詳解

    Kubernetes基礎(chǔ)(二十三)-k8s持久化存儲詳解

    1.1 介紹 在容器中的磁盤文件是短暫的,當(dāng)容器崩潰時,Kubelet會重新啟動容器,但容器運行時產(chǎn)生的數(shù)據(jù)文件都將會丟失,之后容器會以最干凈的狀態(tài)啟動。另外,當(dāng)一個Pod運行多個容器時,各個容器可能需要共享一些文件,諸如此類的需求都可以使用Volume解決。Pod只需要通

    2024年03月17日
    瀏覽(25)
  • 如何借助Kafka持久化存儲K8S事件數(shù)據(jù)?

    如何借助Kafka持久化存儲K8S事件數(shù)據(jù)?

    大家應(yīng)該對 Kubernetes Events 并不陌生,特別是當(dāng)你使用 kubectl describe 命令或 Event API 資源來了解集群中的故障時。 ? ? 盡管這些信息十分有用,但它只是臨時的,保留時間最長為30天。如果出于審計或是故障診斷等目的,你可能想要把這些信息保留得更久,比如保存在像 Kafka

    2024年02月05日
    瀏覽(32)
  • 第18關(guān) K8s數(shù)據(jù)安全無憂——持久化存儲詳解

    ------ 課程視頻同步分享在今日頭條和B站 大家好,我是博哥愛運維,本期課程將深入解析Kubernetes的持久化存儲機(jī)制,包括PV、PVC、StorageClass等的工作原理、使用場景、最佳實踐等,幫您構(gòu)建穩(wěn)定可靠的狀態(tài)存儲,確保應(yīng)用和數(shù)據(jù) 100% 安全。 Volume 我們這里先來聊聊K8s的存儲模型V

    2024年02月05日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包