• 持久化存储之 PV、PVC、StorageClass


    PV介绍:

           PersistentVolume(PV)是群集中由管理员配置的一块存储。 它是集群中的资源,就像节点是集群资源一样。 PV是容量插件,如Volumes,但其生命周期独立于使用PV的任何单个pod。 此API对象捕获存储实现的详细信息,包括NFS,iSCSI或特定于云提供程序的存储系统。

            可以通过两种方式配置PV:静态或动态。

    静态:

          集群管理员创建了许多PV。它们包含可供群集用户使用的实际存储的详细信息。它们存在于Kubernetes API中,可供使用。

    动态:

          当管理员创建的静态PV都无法与PVC匹配时,群集可能会尝试为PVC动态配置卷。此配置基于StorageClasses:PVC必须请求 存储类,并且管理员必须已创建并配置该类,以便进行动态配置。请求该类的声明""有效地禁用了它们自己的动态配置。

    定义NFS PV 资源(静态):

      1 pv定义如下:
      2 apiVersion: v1
      3 kind: PersistentVolume
      4 metadata:
      5   name: nfs
      6 spec:
      7   storageClassName: manual
      8   capacity:
      9     storage: 1Gi
     10   accessModes:
     11     - ReadWriteMany
     12   nfs:
     13     server: 10.244.1.4
     14     path: "/"

    PVC介绍:

        PersistentVolumeClaim(PVC)是由用户进行存储的请求。它类似于一个pod。Pod消耗节点资源,PVC消耗PV资源。Pod可以请求特定级别的资源(CPU和内存)。声明可以请求特定的大小和访问模式(例如,可以一次读/写或多次只读)

          虽然PVC允许用户使用抽象存储资源,但是PersistentVolumes(PV)对于不同的问题,用户通常需要具有不同属性(例如性能)。群集管理员需要能够提供各种PersistentVolumes不同的方式,而不仅仅是大小和访问模式,而不会让用户了解这些卷的实现方式。对于这些需求,有StorageClass 资源。

    定义pvc资源:

      1 apiVersion: v1
      2 kind: PersistentVolumeClaim
      3 metadata:
      4   name: nfs
      5 spec:
      6   accessModes:
      7     - ReadWriteMany
      8   storageClassName: manual
      9   resources:
     10     requests:
     11       storage: 1Gi

    pvc和pv匹配规则:

    • PV 和 PVC 的 spec 字段。比如,PV 的存储(storage)大小,必须满足 PVC的要求。
    • PV 和 PVC 的 storageClassName 字段必须一样。

     

     

    StorageClass介绍

            StorageClass为管理员提供了一种描述他们提供的存储“类”的方法。不同的类可能映射到服务质量级别,或备份策略,或者由集群管理员确定的任意策略。Kubernetes本身对于什么类代表是不受任何影响的。这个概念有时在其他存储系统中称为“配置文件”。

    StorageClass资源

         每个都StorageClass包含字段provisioner,parameters和 reclaimPolicy,当PersistentVolume需要动态配置属于该类时使用的字段。

         StorageClass对象的名称很重要,用户可以如何请求特定的类。管理员在首次创建StorageClass对象时设置类的名称和其他参数,并且在创建对象后无法更新这些对象。

    定义StorageClass资源:

      1 apiVersion: storage.k8s.io/v1
      2 kind: StorageClass
      3 metadata:
      4   name: block-service
      5 provisioner: kubernetes.io/gce-pd
      6 parameters:
      7   type: pd-ssd
  • 相关阅读:
    t
    0409笔记
    vue typescript ui库
    0329
    express+sequelize 做后台
    android申请多个权限的正确姿势
    [BBS] Reply.jsp 03
    [BBS] ShowArticleDetail.jsp 02
    [BBS] ShowArticleTree.jsp 01 帖子的树形展现-递归 、Session 存 login 否
    [Jweb] MyEclipse 的常见操作
  • 原文地址:https://www.cnblogs.com/menkeyi/p/10903647.html
Copyright © 2020-2023  润新知