ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

StorageClass

2022-07-11 11:18:06  阅读:169  来源: 互联网

标签:插件 PV 创建 存储 PVC StorageClass


常见的容器存储数据卷使用方式如下:
  • 静态存储卷

    静态存储卷一般是指由管理员创建的PV。所有的数据卷(Volume)都支持创建静态存储卷。

    静态存储卷先由集群管理员分析集群中存储需求,并预先分配一些存储介质(例如云盘、NAS盘等),同时创建对应的PV对象。创建好的PV对象等待PVC来消费。如果负载中定义了PVC需求,Kubernetes会通过相关规则实现PVC和匹配的PV进行绑定,这样就实现了应用对存储服务的访问能力。

  • 动态存储卷

    动态存储卷一般是指通过存储插件自动创建的PV。

    动态卷一般由集群管理员配置好后端的存储池,并创建相应的模板(StorageClass),当有PVC需要消费PV的时候,根据PVC定义的需求,并参考StorageClass的存储细节,由存储插件动态创建一个PV。StorageClass的定义如下:
    • StorageClass

      当您声明一个PVC时,如果在PVC中添加了StorageClassName字段,意味着当PVC在集群中找不到匹配的PV时,会根据StorageClassName的定义触发相应的Provisioner插件创建合适的PV供绑定,即创建动态数据卷。

      动态数据卷由Provisioner插件创建,并通过StorageClassName与PVC进行关联。

    •  

       

    •  

      StorageClass可译为存储类,表示为一个创建PV存储卷的模板。在PVC触发自动创建PV的过程中,即使用StorageClass对象中的内容进行创建。其内容如下:  
      apiVersion: storage.k8s.io/v1
      kind: StorageClass
      metadata:
        name: alicloud-disk-topology
      parameters:
        type: cloud_ssd
      provisioner: diskplugin.csi.alibabacloud.com
      reclaimPolicy: Delete
      allowVolumeExpansion: true
      volumeBindingMode: WaitForFirstConsumer
       
      参数描述
      reclaimPolicy 用来指定创建PV的persistentVolumeReclaimPolicy字段值,支持DeleteRetain
      • Delete表示动态创建的PV,在销毁的时候也会自动销毁。
      • Retain表示动态创建的PV,不会自动销毁,而是由管理员处理。
      allowVolumeExpansion 定义由此存储类创建的PV是否运行动态扩容,默认为false。是否能动态扩容是由底层存储插件来实现的,这里只是一个开关。
      volumeBindingMode 表示动态创建PV的时间,支持ImmediateWaitForFirstConsumer,分别表示立即创建和延迟创建。
    • 延迟绑定 针对某类存储(例如阿里云云盘)在挂载属性上有所限制,只能挂载相同可用区的数据卷和节点,不在同一个可用区不可以挂载。这种类型的存储卷通常遇到如下问题:
      • 创建了A可用区的数据卷,但是A可用区的节点资源已经耗光,导致Pod启动无法完成挂载。
      • 集群管理员在规划PVC、PV的时候不能确定在哪些可用区创建多个PV来备用。

      StorageClass中的volumeBindingMode字段正是用来解决此问题,如果将volumeBindingMode配置为WaitForFirstConsumer值,则表示存储插件在收到PVC Pending的时候不会立即进行数据卷创建,而是等待这个PVC被Pod消费的时候才执行创建流程。

        说明

      延迟绑定实现原理如下:

      Provisioner在收到PVC Pending状态的时候不会立即进行数据卷创建,而是等待这个PVC被Pod消费。如果有Pod消费此PVC,调度器发现PVC是延迟绑定模式,则继续完成调度功能,且调度器会将调度结果通过patch命令到PVC的metadata中。当Provisioner发现PVC中写入了调度信息时,会根据调度信息获取创建目标数据卷的位置信息(区域和节点信息),并触发PV的创建流程。

      在多可用区集群环境中,更推荐使用延迟绑定的动态卷方案,目前阿里云ACK集群已经支持上述配置方案。

    动态存储卷的优势
    • 动态存储卷让Kubernetes实现了PV的自动化生命周期管理,PV的创建、删除都通过Provisioner完成。
    • 自动化创建PV对象,减少了配置复杂度和系统管理员的工作量。
    • 动态卷可以实现PVC对存储的需求容量和Provisioner出来的PV容量一致,实现存储容量规划最优。

     

     

     

     

     

     

     

     

标签:插件,PV,创建,存储,PVC,StorageClass
来源: https://www.cnblogs.com/linux985/p/16465679.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有