本文个人博客地址:https://www.huweihuang.com/kubernetes-notes/storage/storage-class.html

StorageClass

1. StorageClass概述

StorageClass提供了一种描述存储类(class)的方法,不同的class可能会映射到不同的服务质量等级和备份策略或其他策略等。

StorageClass 对象中包含 provisionerparametersreclaimPolicy 字段,当需要动态分配 PersistentVolume 时会使用到。当创建 StorageClass 对象时,设置名称和其他参数,一旦创建了对象就不能再对其更新。也可以为没有申请绑定到特定 class 的 PVC 指定一个默认的 StorageClass

StorageClass对象文件

kind: StorageClass
apiVersion: storage.k8s.io/v3
metadata:name: standard
provisioner: kubernetes.io/aws-ebs
parameters:type: gp2
reclaimPolicy: Retain
mountOptions:- debug

2. StorageClass的属性

2.1. Provisioner(存储分配器)

Storage class 有一个分配器(provisioner),用来决定使用哪个卷插件分配 PV,该字段必须指定。可以指定内部分配器,也可以指定外部分配器。外部分配器的代码地址为: kubernetes-incubator/external-storage,其中包括NFSCeph等。

2.2. Reclaim Policy(回收策略)

可以通过reclaimPolicy字段指定创建的Persistent Volume的回收策略,回收策略包括:Delete 或者 Retain,没有指定默认为Delete

2.3. Mount Options(挂载选项)

由 storage class 动态创建的 Persistent Volume 将使用 class 中 mountOptions 字段指定的挂载选项。

2.4. 参数

Storage class 具有描述属于 storage class 卷的参数。取决于分配器,可以接受不同的参数。 当参数被省略时,会使用默认值。

例如以下使用Ceph RBD

kind: StorageClass
apiVersion: storage.k8s.io/v3
metadata:name: fast
provisioner: kubernetes.io/rbd
parameters:monitors: 30.36.353.305:6789adminId: kubeadminSecretName: ceph-secretadminSecretNamespace: kube-systempool: kubeuserId: kubeuserSecretName: ceph-secret-userfsType: ext4imageFormat: "2"imageFeatures: "layering"

对应的参数说明

  • monitors:Ceph monitor,逗号分隔。该参数是必需的。

  • adminId:Ceph 客户端 ID,用于在池(ceph pool)中创建映像。 默认是 “admin”。

  • adminSecretNamespace:adminSecret 的 namespace。默认是 “default”。

  • adminSecret:adminId 的 Secret 名称。该参数是必需的。 提供的 secret 必须有值为 “kubernetes.io/rbd” 的 type 参数。

  • pool: Ceph RBD 池. 默认是 “rbd”。

  • userId:Ceph 客户端 ID,用于映射 RBD 镜像(RBD image)。默认与 adminId 相同。

  • userSecretName:用于映射 RBD 镜像的 userId 的 Ceph Secret 的名字。 它必须与 PVC 存在于相同的 namespace 中。该参数是必需的。 提供的 secret 必须具有值为 “kubernetes.io/rbd” 的 type 参数,例如以这样的方式创建:

    kubectl create secret generic ceph-secret --type="kubernetes.io/rbd" \--from-literal=key='QVFEQ1pMdFhPUnQrSmhBQUFYaERWNHJsZ3BsMmNjcDR6RFZST0E9PQ==' \--namespace=kube-system
    
  • fsType:Kubernetes 支持的 fsType。默认:“ext4”。

  • imageFormat:Ceph RBD 镜像格式,”1” 或者 “2”。默认值是 “1”。

  • imageFeatures:这个参数是可选的,只能在你将 imageFormat 设置为 “2” 才使用。 目前支持的功能只是 layering。 默认是 ““,没有功能打开。

参考文章:

  • https://kubernetes.io/docs/concepts/storage/storage-classes/

StorageClass相关推荐

  1. Kubernetes对象中的PersistentVolume、PersistentVolumeClaim和StorageClass的概念关系

    Kubernetes容器要持久化数据,离不开volume,k8s的volume和Docker原生概念中的volume有一些差别,不过本次不讲这个,本次要明确的是k8s持久化数据用到的几个对象Persi ...

  2. k8s安装kubesphere的环境准备:资源规划、默认存储类StorageClass(nfs-client-provisioner)

    先决条件 只要您的 Kubernetes 集群满足以下先决条件,不仅可以将 KubeSphere 安装在具有预配置的 Kubernetes 的虚拟机和裸机上,而且还支持在云托管和本地现有 Kubern ...

  3. kubernetes 实战 使用 nfs 作为动态 storageClass 存储

    kubernetes 实战 使用 nfs 作为动态 storageClass 存储 概述 之前有介绍过 Kubernetes 实战 pv and pvc, 相信使用过的pv和pvc的同学或者有过虚拟化 ...

  4. k8s—centos7安装部署NFS服务器和客户端及基于nfs的动态存储storageclass使用总结

    ![技术公众号:后端技术解忧铺](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX ...

  5. Kubernetes—动态存储卷配置(StorageClass资源)(十二)

    StorageClass的介绍   StorageClass是对存储资源的一个抽象定义.与静态模式的存储卷配置(就是集群管理员手动去创建持久卷PV),StorageClass是一种动态模式的存储卷配置 ...

  6. Docker(二十九)k8s 创建动态存储,基于nfs 的storageclass

    可参照官方的配置 https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client/deploy 第一种 ...

  7. K8S集群中Pod挂载Storageclass存储卷异常排查思路

    K8S集群中Pod挂载Storageclass存储卷异常排查思路 故障描述: Jenkins是在K8S集群中部署的,Jenkins使用的各种资源以及全部创建了,但是Jenkins的Pod依旧无法启动, ...

  8. K8S学习之storageclass

    storageclass storageclass是一个存储类,通过创建storageclass可以动态生成一个存储卷供k8s用户使用. [root@master ~]# kubectl explai ...

  9. k8s——pv(静态+动态storageclass)与pvc

    k8s--pv(静态+动态storageclass)与pvc PVC和PV PV概念 PVC概念 PV与PVC之间的关系 两种PV的提供方式 基于nfs创建静态PV资源和PVC资源 配置nfs存储(1 ...

  10. k8s集群svc端口范围,nfs做StorageClass运行故障

    ================== kubeadm 更改NodePort端口范围 kubernetes默认端口号范围是 30000-32767 ,如果期望值不是这个区间则需要更改. 1.找到配置文件 ...

最新文章

  1. SSC:面向大规模场景识别的语义扫描context(IROS2021)
  2. pro*c 倒出数据库数据
  3. [Joomla] 利用joomla内置的表单验证功能
  4. 常见模块设计--数据字典
  5. ABAP 在程序中启动后台JOB
  6. SQL基础【九、Update】
  7. javascript高级程序设计 学习笔记 第五章 上
  8. 前端学习之BOM(浏览器对象模型)
  9. HTML5学习笔记(二)
  10. android 混音 源码,FFmpegAndroid android 端基于 FFmpeg 实现音频剪切、拼接、转码、混音、编解码;视频剪切、水印、截图、转码、编 @codeKK c开源站...
  11. 图像 存储csv_matplotlib基于数据文件绘制其图像
  12. gitlab protected branch
  13. 9.6 shell脚本应用3
  14. android之去掉actionbar
  15. Matlab学习10-图像处理之傅里叶变换
  16. 天眼查企业工商信息查询接口
  17. 此网站的安全证书有问题
  18. 支付宝转账到银行卡的功能测试点
  19. 树莓派wiringPi输出PMW
  20. 计算机网络英文简称名词解释

热门文章

  1. 梦主博客教你网站的日常维护与推广
  2. HMD和诺基亚,谁是才是真正的诺基亚?
  3. linux,rpm, tar, gz, bz, bz2, rar, zip, lha, deb, 解压
  4. Inno安装语言注意
  5. SpringBoot进阶(一):再回首SpringBoot maven 项目的三种启动方式
  6. guidata handles理解
  7. UVa 12563 - Jin Ge Jin Qu hao(01背包)
  8. 项目实训2021.07.09
  9. 从零学Linux第一章——操作系统演变及历史介绍
  10. apt-get install 与 pkg-config