最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

云原生技術(shù)持久化存儲(chǔ)PV與PVC

 更新時(shí)間:2022年03月18日 15:25:51   作者:、重明  
這篇文章主要介紹了云原生技術(shù)持久化存儲(chǔ)PV與PVC

1.PV與PVC

PV:

持久卷(PersistentVolume)簡(jiǎn)稱PV,是集群中的一塊存儲(chǔ),可以由管理員事先供應(yīng)。
可以配置NFS、Ceph等常用存儲(chǔ)配置,相對(duì)于volumes,提供了更多的功能,如生命周期管理、大小的限制。

PV 卷的供應(yīng)有兩種方式:靜態(tài)供應(yīng)或動(dòng)態(tài)供應(yīng)。

靜態(tài):

集群管理員預(yù)先創(chuàng)建許多PV,在PV的定義中能夠體現(xiàn)存儲(chǔ)資源的特性。

動(dòng)態(tài):

集群管理員無(wú)須預(yù)先創(chuàng)建PV,而是通過(guò)StorageClass的設(shè)置對(duì)后端存儲(chǔ)資源進(jìn)行描述,標(biāo)記存儲(chǔ)的類型和特性。用戶通過(guò)創(chuàng)建PVC對(duì)存儲(chǔ)類型進(jìn)行申請(qǐng),系統(tǒng)將自動(dòng)完成PV的創(chuàng)建及與PVC的綁定。如果PVC聲明的Class為空"",則說(shuō)明PVC不使用動(dòng)態(tài)模式。

PVC:

持久卷申領(lǐng)(PersistentVolumeClaim,PVC)表達(dá)的是用戶對(duì)存儲(chǔ)的請(qǐng)求。就像Pod消耗Node的資源一樣,PVC消耗PV資源。PVC可以申請(qǐng)存儲(chǔ)空間的大小(size)和訪問(wèn)模式。

在這里插入圖片描述

由管理員創(chuàng)建PV連接到后端存儲(chǔ),使用人員或管理員創(chuàng)建PVC使用PV資源。

2.PV資源回收

當(dāng)用戶不再使用其存儲(chǔ)卷時(shí),他們可以從 API 中將 PVC 對(duì)象刪除,從而允許 該資源被回收再利用。PV 對(duì)象的回收策略告訴集群,當(dāng)其被 從申領(lǐng)中釋放時(shí)如何處理該數(shù)據(jù)卷。 目前,數(shù)據(jù)卷可以被 Retained(保留)、Recycled(回收)或 Deleted(刪除)。

Retain:保留資源

保留策略可以管理員手動(dòng)回收資源,當(dāng)PVC被刪除后,PV仍然存在,對(duì)應(yīng)的數(shù)據(jù)卷被視為"已釋放(released)",管理員可以手動(dòng)回收資源。

Delete:刪除數(shù)據(jù)

需要插件支持,如果支持,那么刪除PVC時(shí)也會(huì)自動(dòng)刪除PV和相關(guān)的后端存儲(chǔ)資源;動(dòng)態(tài)卷默認(rèn)為delete。

Recycle:回收(棄用)

回收策略已被棄用,代替者為動(dòng)態(tài)供應(yīng)。如果下層的卷插件支持,回收策略 Recycle 會(huì)在卷上執(zhí)行一些基本的 擦除(rm -rf /thevolume/*)操作,之后允許該卷用于新的 PVC 申領(lǐng)。

3.訪問(wèn)模式

ReadWriteOnce

卷可以被一個(gè)節(jié)點(diǎn)以讀寫(xiě)方式掛載。 ReadWriteOnce 訪問(wèn)模式也允許運(yùn)行在同一節(jié)點(diǎn)上的多個(gè) Pod 訪問(wèn)卷,縮寫(xiě)為RWO。

ReadOnlyMany

卷可以被多個(gè)節(jié)點(diǎn)以只讀方式掛載,縮寫(xiě)為ROX。

ReadWriteMany

卷可以被多個(gè)節(jié)點(diǎn)以讀寫(xiě)方式掛載,縮寫(xiě)為RWX。

ReadWriteOncePod

卷可以被單個(gè) Pod 以讀寫(xiě)方式掛載。 如果你想確保整個(gè)集群中只有一個(gè) Pod 可以讀取或?qū)懭朐?PVC, 請(qǐng)使用ReadWriteOncePod 訪問(wèn)模式。這只支持 CSI 卷以及需要 Kubernetes 1.22 以上版本,縮寫(xiě)為RWOP。

注意: 你的存儲(chǔ)支不支持這種訪問(wèn)模式,具體情況查看:官方文檔

4.存儲(chǔ)分類

文件存儲(chǔ)(Filesystem):

一些數(shù)據(jù)可能需要多個(gè)節(jié)點(diǎn)使用,比如用戶頭像、用戶上傳文件等,實(shí)現(xiàn)方式:NFS、NAS、FTP等;NFS和FTP不推薦。

塊存儲(chǔ)(block):

一些數(shù)據(jù)只能被一個(gè)節(jié)點(diǎn)使用,或者是一塊裸盤(pán)整個(gè)掛載使用,比如數(shù)據(jù)庫(kù)、redis等,實(shí)現(xiàn)方式是Ceph、GlusterFS、公有云等。

對(duì)象存儲(chǔ):

由程序代碼直接實(shí)現(xiàn)的一種存儲(chǔ)方式,云原生應(yīng)用無(wú)狀態(tài)化常用的實(shí)現(xiàn)方式;實(shí)現(xiàn)方式:一般是符合53標(biāo)準(zhǔn)的云存儲(chǔ),比如AWS的53存儲(chǔ)、Minio等。

5.創(chuàng)建PV卷

列舉兩個(gè)實(shí)例,其他類型可參考官網(wǎng),因?yàn)槲疫@資源有限。

5.1.實(shí)例:創(chuàng)建NAS/NFS類型的PV

生產(chǎn)不推薦NFS??梢允褂肗AS。

準(zhǔn)備一臺(tái)NFS服務(wù)器

第一步:準(zhǔn)備一臺(tái)NFS服務(wù)器,我這個(gè)裝的有點(diǎn)多,你也可以只安裝nfs服務(wù)器

[root@localhost ~]# yum -y install nfs* rpcbind

第二步:所有節(jié)點(diǎn)安裝nfs客戶端,不然不能識(shí)別,每一個(gè)需要掛載nfs的節(jié)點(diǎn)都需要裝

[root@k8s-master01 ~]# yum -y install nfs-utils

第三步:在服務(wù)端創(chuàng)建共享目錄

[root@k8s-master01 ~]# yum -y install nfs-utils

第四步:服務(wù)端配置共享目錄

[root@localhost ~]# cat /etc/exports
/data/k8s/ *(rw,sync,no_subtree_check,no_root_squash)
[root@localhost ~]# exportfs -r
[root@localhost ~]# systemctl restart nfs rpcbind

第五步:有另外一臺(tái)機(jī)器掛載共享目錄測(cè)試是否成功

[root@k8s-master01 hgfs]# mount -t nfs 192.168.10.6:/data/k8s /mnt
[root@k8s-master01 mnt]# mkdir hah
[root@k8s-master01 mnt]# ls
111.txt  hah
# 在nfs服務(wù)端查看
[root@localhost k8s]# ls
111.txt  hah

創(chuàng)建一個(gè)PV

第一步:編寫(xiě)一個(gè)PV的yaml文件

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-nfs
spec:
  capacity:
    storage: 2Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  storageClassName: nfs-slow
  nfs:
    path: /data/k8s
    server: 192.168.10.6

對(duì)上面的yaml文件做一下說(shuō)明:

通用的開(kāi)頭就不說(shuō)了

capacity:容量配置,這個(gè)pv使用多大容量,當(dāng)然需要后端存儲(chǔ)支持才行

volumeMode:卷的模式,目錄4有說(shuō)明

accessModes:PV的訪問(wèn)模式,目錄3有說(shuō)明

accessClassName:PV的類,特定的PV只能綁定特定的PVC

persistentVolumeReclaimPolicy:回收策略,目錄2有說(shuō)明

nfs:NFS服務(wù)配置,里面包含共享目錄和服務(wù)端IP

第二步:執(zhí)行yaml文件創(chuàng)建此PV;注意PV的成功跟后端存儲(chǔ)正不正常沒(méi)什么關(guān)系。

[root@k8s-master01 ~]# kubectl create -f pv-nfs.yaml 
persistentvolume/pv-nfs created
[root@k8s-master01 ~]# kubectl get pv
NAME     CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
pv-nfs   2Gi        RWO            Recycle          Available           nfs-slow                54s

第三步:說(shuō)一下PV的狀態(tài)(STATUS)

Available:可用,沒(méi)有被PVC綁定的空閑資源

Bound:已綁定,已經(jīng)被PVC綁定

Released:已釋放,PVC被刪除,資源未被重新使用

Failed:失敗,自動(dòng)回收失敗

5.2.實(shí)例:創(chuàng)建一個(gè)hostPath類型的PV

當(dāng)你沒(méi)有一個(gè)可靠的存儲(chǔ),但是數(shù)據(jù)又不能丟失,可以掛載到宿主機(jī)的路徑,即使重啟數(shù)據(jù)還在。

第一步:創(chuàng)建一個(gè)pv-host.yaml文件

apiVersion: v1
kind: PersistentVolume
metadata:
  name: host-pv-volume
  labels:
    type: local
spec:
  storageClassName: hostpath
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"  # 宿主機(jī)路徑

第二步:執(zhí)行yaml文件創(chuàng)建PV

[root@k8s-master01 ~]# kubectl create -f pv-host.yaml 
persistentvolume/host-pv-volume created
您在 /var/spool/mail/root 中有新郵件
[root@k8s-master01 ~]# kubectl get pv
NAME             CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
host-pv-volume   1Gi        RWO            Retain           Available           hostpath                9s
pv-nfs           2Gi        RWO            Recycle          Available           nfs-slow                30m

6.PVC

6.1.Pod與PVC與PV的關(guān)系

在這里插入圖片描述

由一張圖說(shuō)一下PV與PVC的綁定,Pod又是怎么掛載PVC

首先創(chuàng)建一個(gè)PV,它的名字是pv-nfs,storageClassName名字是nfs-slow(這個(gè)名字不唯一,就是說(shuō)其他PV也可以叫這個(gè)名字)

然后創(chuàng)建一個(gè)PVC,它的名字是test-pv-claim,storageClassName名字是nfs-slow(PVC綁定PV也是根據(jù)這個(gè)名字判斷,根據(jù)上一點(diǎn)說(shuō)的特性也就是說(shuō)一個(gè)PVC可以綁定多個(gè)storageClassName名字是nfs-slow的PV)注意PVC設(shè)置的資源大小要等于小于PV。

最后Pod使用的時(shí)候創(chuàng)建一個(gè)volumes,這個(gè)名字是test-pv-storage,這個(gè)volumes使用的PVC資源要寫(xiě)PVC的name,也就是test-pv-claim;等Pod中的容器掛載資源的時(shí)候掛載的名字是volumes的name,也就是test-pv-storage。

6.2.創(chuàng)建一個(gè)PVC掛載到Pod

注意:pvc要和Pod在同一個(gè)命名空間,而pv不需要;因?yàn)槎际窃谀J(rèn)空間,就沒(méi)指定,需要注意。

第一步:編寫(xiě)一個(gè)PVC的yaml文件

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: test-pv-claim
spec:
  accessModes:
    - ReadWriteOnce
  volumeMode: Filesystem
  resources:
    requests:
      storage: 2Gi  # 小于等于pv
  storageClassName: nfs-slow

第二步:執(zhí)行yaml文件創(chuàng)建PVC;從下面這個(gè)狀態(tài)來(lái)看已經(jīng)綁定成功了,綁定了pv-nfs,類型為nfs-slow,都是前面指定的。

[root@k8s-master01 ~]# kubectl create -f pvc-nfs.yaml 
persistentvolumeclaim/test-pv-claim created
[root@k8s-master01 ~]# kubectl get pvc
NAME            STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
test-pv-claim   Bound    pv-nfs   2Gi        RWO            nfs-slow       20s

第三步:創(chuàng)建Pod掛載PVC

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: dp-nginx
  name: dp-nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: dp-nginx
  strategy: {}
  template:
    metadata:
      labels:
        app: dp-nginx
    spec:
      volumes:
      - name: test-pv-storage
        persistentVolumeClaim:
          claimName: test-pv-claim
      containers:
      - image: nginx
        name: nginx
        volumeMounts:
        - mountPath: "/usr/share/nginx/html"
          name: test-pv-storage

第四步:創(chuàng)建Pod,進(jìn)入Pod查看掛載情況

[root@k8s-master01 ~]# kubectl replace -f dp-nginx.yaml 
deployment.apps/dp-nginx replaced
[root@k8s-master01 ~]# kubectl get pod
NAME                       READY   STATUS    RESTARTS   AGE
dp-nginx-fcd88d6f8-prxcd   1/1     Running   0          22s
[root@k8s-master01 ~]# kubectl exec -ti dp-nginx-fcd88d6f8-prxcd -- bash
root@dp-nginx-fcd88d6f8-prxcd:/# df -Th
Filesystem              Type     Size  Used Avail Use% Mounted on
overlay                 overlay   17G  5.2G   12G  31% /
tmpfs                   tmpfs     64M     0   64M   0% /dev
tmpfs                   tmpfs    2.0G     0  2.0G   0% /sys/fs/cgroup
shm                     tmpfs     64M     0   64M   0% /dev/shm
/dev/mapper/centos-root xfs       17G  5.2G   12G  31% /etc/hosts
192.168.10.6:/data/k8s  nfs4      17G  2.4G   15G  14% /usr/share/nginx/html
tmpfs                   tmpfs    3.8G   12K  3.8G   1% /run/secrets/kubernetes.io/serviceaccount
tmpfs                   tmpfs    2.0G     0  2.0G   0% /proc/acpi
tmpfs                   tmpfs    2.0G     0  2.0G   0% /proc/scsi
tmpfs                   tmpfs    2.0G     0  2.0G   0% /sys/firmware
# 可以看到10.6的共享目錄已經(jīng)掛載到了/nginx/html下

第五步:測(cè)試,在nfs服務(wù)器共享目錄下創(chuàng)建資源,進(jìn)入Pod容器內(nèi)查看是否存在

# nfs服務(wù)器中創(chuàng)建資源
[root@localhost k8s]# ls
111.txt  hah
# 在Pod的nginx容器中查看
root@dp-nginx-fcd88d6f8-prxcd:/# cd /usr/share/nginx/html/
root@dp-nginx-fcd88d6f8-prxcd:/usr/share/nginx/html# ls
111.txt  hah
# 內(nèi)容存在,說(shuō)明創(chuàng)建成功

以上就是云原生技術(shù)持久化存儲(chǔ)PV與PVC的詳細(xì)內(nèi)容,更多關(guān)于云原生持久化存儲(chǔ)PV與PVC的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • K8s-helm簡(jiǎn)介及基本概念詳解

    K8s-helm簡(jiǎn)介及基本概念詳解

    ?Helm?使用的包格式稱為?chart,它是一個(gè)描述?Kubernetes?相關(guān)資源對(duì)象的文件集合,這篇文章主要介紹了K8s-helm簡(jiǎn)介及基本概念,需要的朋友可以參考下
    2022-07-07
  • kubernetes(k8s)安裝metrics-server實(shí)現(xiàn)資源使用情況監(jiān)控方式詳解

    kubernetes(k8s)安裝metrics-server實(shí)現(xiàn)資源使用情況監(jiān)控方式詳解

    這篇文章主要介紹了kubernetes(k8s)安裝metrics-server實(shí)現(xiàn)資源使用情況監(jiān)控,包括Metrics?Server下載方式,?k8s集群安裝部署metrics的問(wèn)題,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • Hadoop 2.x與3.x 22點(diǎn)比較,Hadoop 3.x比2.x的改進(jìn)

    Hadoop 2.x與3.x 22點(diǎn)比較,Hadoop 3.x比2.x的改進(jìn)

    本文介紹了Hadoop3版本中添加的新功能,Hadoop 2和Hadoop 3的區(qū)別,在這篇文章中,我們將討論Hadoop 2.x與Hadoop 3.x之間的比較。感興趣的朋友跟隨小編一起看一下
    2018-09-09
  • CentOS 7下YUM 本地倉(cāng)庫(kù)的搭建詳細(xì)步驟

    CentOS 7下YUM 本地倉(cāng)庫(kù)的搭建詳細(xì)步驟

    這篇文章主要介紹了CentOS 7下YUM 本地倉(cāng)庫(kù)的搭建詳細(xì)步驟的相關(guān)資料,希望通過(guò)本文能幫助到大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-09-09
  • k8s多節(jié)點(diǎn)master部署過(guò)程

    k8s多節(jié)點(diǎn)master部署過(guò)程

    這篇文章主要介紹了k8s多節(jié)點(diǎn)master部署過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Kubernetes教程之Windows?HostProcess?運(yùn)行容器化負(fù)載

    Kubernetes教程之Windows?HostProcess?運(yùn)行容器化負(fù)載

    這篇文章主要介紹了Kubernetes?Windows?HostProcess?運(yùn)行容器化負(fù)載,本篇內(nèi)容還是比較多的,總共包含了?Windows?HostProcess的創(chuàng)建、為?Windows?Pod?和容器配置?GMSA?和?Windows?的?Pod?和容器配置?RunAsUserName三大功能模塊,需要的朋友可以參考下
    2022-07-07
  • 安裝ingress-nginx遇到的一些坑實(shí)戰(zhàn)記錄

    安裝ingress-nginx遇到的一些坑實(shí)戰(zhàn)記錄

    ingress是kubernetes集群對(duì)外暴露服務(wù)的一種方式,下面這篇文章主要給大家介紹了關(guān)于安裝ingress-nginx遇到的一些坑,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • K8s準(zhǔn)入控制Admission?Controller深入介紹

    K8s準(zhǔn)入控制Admission?Controller深入介紹

    本篇我們將聚焦于?kube-apiserver?請(qǐng)求處理過(guò)程中一個(gè)很重要的部分?--?準(zhǔn)入控制器(Admission?Controller)深入講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • kubernetes部署dashboard及應(yīng)用小結(jié)

    kubernetes部署dashboard及應(yīng)用小結(jié)

    Dashboard?是基于網(wǎng)頁(yè)的?Kubernetes?用戶界面,可以對(duì)?Deployment?實(shí)現(xiàn)彈性伸縮、發(fā)起滾動(dòng)升級(jí)、重啟?Pod?或者使用向?qū)?chuàng)建新的應(yīng)用,這篇文章主要介紹了kubernetes部署dashboard,需要的朋友可以參考下
    2024-06-06
  • Kubernetes安全加固的一些實(shí)用建議

    Kubernetes安全加固的一些實(shí)用建議

    Kubernetes是一個(gè)自動(dòng)化的容器編排平臺(tái),它負(fù)責(zé)應(yīng)用的部署、應(yīng)用的彈性以及應(yīng)用的管理,這些都是基于容器的,下面這篇文章主要給大家介紹了關(guān)于Kubernetes安全加固的一些實(shí)用建議,需要的朋友可以參考下
    2022-02-02

最新評(píng)論

宁武县| 双柏县| 含山县| 梨树县| 三亚市| 延安市| 新巴尔虎左旗| 社旗县| 鸡泽县| 屯留县| 台东市| 苍山县| 靖西县| 芜湖县| 介休市| 东丰县| 灵寿县| 鄂尔多斯市| 白沙| 商南县| 浏阳市| 福鼎市| 大悟县| 孟津县| 财经| 应城市| 舒城县| 仁布县| 建始县| 克山县| 横山县| 花垣县| 漯河市| 望谟县| 富川| 新绛县| 澄城县| 日照市| 滦平县| 锡林郭勒盟| 青州市|