zoukankan      html  css  js  c++  java
  • 静态PV PVC

    认识PV/PVC/StorageClass

          管理存储是管理计算的一个明显问题。该PersistentVolume子系统为用户和管理员提供了一个API,用于抽象如何根据消费方式提供存储的详细信息。为此,我们引入了两个新的API资源:PersistentVolume和PersistentVolumeClaim
          PersistentVolume(PV)是集群中由管理员配置的一段网络存储。 它是集群中的资源,就像节点是集群资源一样。 PV是容量插件,如Volumes,但其生命周期独立于使用PV的任何单个pod。 此API对象捕获存储实现的详细信息,包括NFS,iSCSI或特定于云提供程序的存储系统。
          PersistentVolumeClaim(PVC)是由用户进行存储的请求。 它类似于pod。 Pod消耗节点资源,PVC消耗PV资源。Pod可以请求特定级别的资源(CPU和内存)。声明可以请求特定的大小和访问模式(例如,可以一次读/写或多次只读)。
          虽然PersistentVolumeClaims允许用户使用抽象存储资源,但是PersistentVolumes对于不同的问题,用户通常需要具有不同属性(例如性能)。群集管理员需要能够提供各种PersistentVolumes不同的方式,而不仅仅是大小和访问模式,而不会让用户了解这些卷的实现方式。对于这些需求,有StorageClass 资源。
          StorageClass为管理员提供了一种描述他们提供的存储的“类”的方法。 不同的类可能映射到服务质量级别,或备份策略,或者由群集管理员确定的任意策略。 Kubernetes本身对于什么类别代表是不言而喻的。 这个概念有时在其他存储系统中称为“配置文件”。

    创建PV

    通过NFS创建两个存储,1个2G,1个20G,通过NFS共享出去

     

    创建pv

    pv-damo.yml文件如下:

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv001
      labels:
        name: pv001
    spec:
      capacity:
        storage: 2Gi
      accessModes:
        - ReadWriteMany
      persistentVolumeReclaimPolicy: Retain
      nfs:
        server: 192.168.8.128
        path: "/mnt/doufy/pod1nfs"
    ---
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv002
      labels:
        name: pv002
    spec:
      capacity:
        storage: 20Gi
      accessModes:
        - ReadWriteMany
      persistentVolumeReclaimPolicy: Retain
      nfs:
        server: 192.168.8.128
        path: "/mnt/doufy/pod2nfs"

    pvc-damo.yml如下:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: mypvc
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 10Gi

    创建pv

    采用的Retain 回收模式(下表解释), 第一次创建状态处于Available 可用状态

    1,pv独立于pod存在
    2,pv可以创建动态pv或者静态pv。动态pv不需要手动去创建。静态pv需要手动创建
    3,访问模式:ReadWriteOnce:可读可写只能mount到一个节点. ReadOnlyMany:PV能模式挂载到多个节点
    4,回收规则:PV 支持的回收策略有: Retain. Recycle.delete
        Retain 管理员回收:kubectl delete pv pv-damo.yaml 创建:kubectl apply -f pv-damo.yaml 在删除pvc后PV变为Released不可用状态,重新使用需要删除重建pv(数据不会丢失)
        Recycle策略 – 删除pvc自动清除PV中的数据,效果相当于执行 rm -rf * 删除pvc时pv的状态由Bound变为Available.此时可重新被pvc申请绑定
        Delete – 删除存储上的对应存储资源,NFS不支持delete策略
    1 [root@master1 pv-static]# kubectl create -f pv-damo.yml
    2 persistentvolume/pv001 created
    3 persistentvolume/pv002 created
    4 [root@master1 pv-static]# kubectl get pv -o wide
    5 NAME    CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE   VOLUMEMODE
    6 pv001   2Gi        RWX            Retain           Available                                   3s    Filesystem
    7 pv002   20Gi       RWX            Retain           Available                                   3s    Filesystem
    8 [root@master1 pv-static]#

    创建pvc

    创建pvc会自动绑定到合适的磁盘。此时pvc状态为bound

    1 [root@master1 pv-static]# kubectl create -f pvc-damo.yml
    2 persistentvolumeclaim/mypvc created
    3 [root@master1 pv-static]# kubectl get pvc -o wide
    4 NAME    STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE   VOLUMEMODE
    5 mypvc   Bound    pv002    20Gi       RWX                           9s    Filesystem
    6 [root@master1 pv-static]#

    绑定pvc之后查看pv状态,pv002变为Bound

    1 [root@master1 pv-static]# kubectl get pv -o wide
    2 NAME    CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM           STORAGECLASS   REASON   AGE     VOLUMEMODE
    3 pv001   2Gi        RWX            Retain           Available                                           3m17s   Filesystem
    4 pv002   20Gi       RWX            Retain           Bound       default/mypvc                           3m17s   Filesystem
    5 [root@master1 pv-static]#

    后续创建pod就可以使用了

       

  • 相关阅读:
    array and ram
    char as int
    pointer of 2d array and address
    Install SAP HANA EXPRESS on Google Cloud Platform
    Ubuntu remount hard drive
    Compile OpenSSL with Visual Studio 2019
    Install Jupyter notebook and tensorflow on Ubuntu 18.04
    Build OpenCV text(OCR) module on windows with Visual Studio 2019
    Reinstall VirtualBox 6.0 on Ubuntu 18.04
    Pitfall in std::vector<cv::Mat>
  • 原文地址:https://www.cnblogs.com/doufy/p/12752056.html
Copyright © 2011-2022 走看看