一 StoragClass

1.1 StorageClass概述

StorageClass作为对存储资源的抽象定义,对用户设置的PVC申请屏蔽后端存储的细节,一方面减少了用户对于存储资源细节的关注,另一方面减轻了管理员手工管理PV的工作,由系统自动完成PV的创建和绑定,实现了动态的资源供应。
基于StorageClass的动态资源供应模式将逐步成为云平台的标准存储配置模式。StorageClass的定义主要包括名称、后端存储的提供者(provisioner)和后端存储的相关参数配置。
StorageClass一旦被创建出来,则将无法修改。如需更改,则只能删除原StorageClass的定义重建。
示例1:定义一个名为standard的StorageClass,提供者为aws-ebs,其参数设置了一个type,值为gp2。
[root@k8smaster01 study]# vi awsclass01.yaml
  1 kind: StorageClass
2 apiVersion: storage.k8s.io/v1
3 metadata:
4 name: standard
5 provisioner: kubernetes.io/aws-bs
6 parameters:
7 type: gp2
8

1.2 StorageClass配置参数

  • 提供者(Provisioner)
描述存储资源的提供者,也可以看作后端存储驱动。目前Kubernetes支持的Provisioner都以“kubernetes.io/”为开头,用户也可以使用自定义的后端存储提供者。
  • 参数(Parameters)
后端存储资源提供者的参数设置,不同的Provisioner包括不同的参数设置。某些参数可以不显示设定,Provisioner将使用其默认值。

1.3 常见Provisioner

  • AWSEBS存储卷
  1 kind: StorageClass
2 apiVersion: storage.k8s.io/v1
3 metadata:
4 name: slow
5 provisioner: kubernetes.io/aws-ebs
6 parameters:
7 type: io1
8 zone: us-east-1d
9 iopsPerGB: "10"
10
参数说明如下(详细说明请参考AWSEBS文档):
    • type:可选项为io1,gp2,sc1,st1,默认值为gp2。
    • zone:AWSzone的名称。
    • iopsPerGB:仅用于io1类型的Volume,意为每秒每GiB的I/O操作数量。
    • encrypted:是否加密。
    • kmsKeyId:加密时的Amazon Resource Name。
  • GCEPD存储卷
  1 kind: StorageClass
2 apiVersion: storage.k8s.io/v1
3 metadata:
4 name: slow
5 provisioner: kubernetes.io/gce-pd
6 parameters:
7 type: pd-standard
8 zone: us-centrall-a
9
参数说明如下(详细说明请参考GCE文档):
    • type:可选项为pd-standard、pd-ssd,默认值为pd-standard。
    • zone:GCEzone名称。
  • GlusterFS存储卷
  1 apiVersion: storage.k8s.io/v1
2 kind: StorageClass
3 metadata:
4 name: slow
5 provisioner: kubernetes.io/glusterfes
6 parameters:
7 resturl: "http://127.0.0.1:8081"
8 clusterid: "xxxxxxxxxxxx"
9 restauthenabled: "true"
10 restuser: "admin"
11 secretNamespace: "default"
12 secretName: "heketi-secret"
13 gidMin: "40000"
14 gidMax: "50000"
15 volumetype: "replicate:3"
16
参数说明如下(详细说明请参考GlusterFS和Heketi的文档):
    • resturl:GlusterREST服务(Heketi)的URL地址,用于自动完成GlusterFSvolume的设置。
    • restauthenabled:是否对GlusterREST服务启用安全机制。
    • restuser:访问GlusterREST服务的用户名。
    • secretNamespace和secretName:保存访问GlusterREST服务密码的Secret资源对象名。
    • clusterid:GlusterFS的ClusterID。
    • gidMin和gidMax:StorageClass的GID范围,用于动态资源供应时为PV设置的GID。
    • volumetype:设置GlusterFS的内部Volume类型,例如replicate:3(Replicate类型,3份副本);disperse:4:2(Disperse类型,数据4份,冗余两份;“none”(Distribute类型)。
  • OpenStackCinder存储卷
  1 kind: StorageClass
2 apiVersion: storage.k8s.io/v1
3 metadata:
4 name: gold
5 provisioner: kubernetes.io/cinder
6 parameters:
7 type: fast
8 availability: nova
9
参数说明如下。
    • type:Cinder的VolumeType,默认值为空。
    • availability:AvailabilityZone,默认值为空。

1.4 设置默认StorageClass

要在系统中设置一个默认的StorageClass,则首先需要启用名为DefaultStorageClass的admission controller,即在kube-apiserver的命令行参数--admission-control中增加:
--admission-control-...,DefaultStorageClass
[root@k8smaster01 study]# vi /etc/kubernetes/manifests/kube-apiserver.yaml
  1 ……
2 - --enable-admission-plugins=NodeRestriction,DefaultStorageClass
3 ……
4
[root@k8smaster01 study]# systemctl restart docker kubelet
然后,在StorageClass的定义中设置一个annotation:
[root@k8smaster01 study]# vi defaultclass01.yaml
  1 kind: StorageClass
2 apiVersion: storage.k8s.io/v1
3 metadata:
4 name: gold
5 annotations:
6 storageclass.beta.kubernetes.io/is-default-class="true"
7 provisioner: kubernetes.io/gce-pd
8 parameters:
9 type: pd-ssd
10
通过kubectl create命令创建成功后,查看StorageClass列表,可以看到名为gold的StorageClass被标记为default:

二 动态管理存储卷

2.1 glusterfs

见《附009.Kubernetes永久存储之GlusterFS独立部署》和《附010.Kubernetes永久存储之GlusterFS超融合部署》。

044.集群存储-StorageClass的更多相关文章

  1. ECStore图片云端集群存储实践-又拍云存储

    通过又拍云存储REST API ,为ECStore新增图片存储引擎,从而达到图片数据与主站数据分离.提高网站性能. 图片存储引擎相关文件添加与修改 一共涉及到ECStore 2个APP 的文件添加和修 ...

  2. 八,kubernetes集群存储卷基础。

    目录 存储卷 存储的分类 emptyDir 测试及使用 hostpath实例 Pod测试挂在共享NFS 写测试清单 测试 pv, pvc 创建几个PV 创建测试的Pod 和 PVC 存储卷 pod运行 ...

  3. 019.Kubernetes二进制集群存储longhorn

    一 Longhorn存储部署 1.1 Longhorn概述 Longhorn是用于Kubernetes的开源分布式块存储系统. 提示:更多介绍参考:https://github.com/longhor ...

  4. CAS工程用redis集群存储票据ticket Spring整合

    maven jar包版本: <dependency> <groupId>redis.clients</groupId> <artifactId>jedi ...

  5. (转)CentOS7.4环境下搭建--Gluster分布式集群存储

    原文:https://blog.csdn.net/qq_39591494/article/details/79853038 环境如下:OS:Centos7.4x86_64IP地址如下: Daasban ...

  6. 045.集群存储-CSI存储机制

    一 CSI存储机制 1.1 CSI简介 Kubernetes从1.9版本开始引入容器存储接口Container Storage Interface(CSI)机制,用于在Kubernetes和外部存储系 ...

  7. 050.集群管理-Prometheus+Grafana监控方案

    一 Prometheus概述 1.1 Prometheus简介 Prometheus是由SoundCloud公司开发的开源监控系统,是继Kubernetes之后CNCF第2个毕业的项目,在容器和微服务 ...

  8. 安装ceph (快速) 步骤二:存储集群

    用 ceph-deploy 从管理节点建立一个 Ceph 存储集群,该集群包含三个节点,以此探索 Ceph 的功能. 创建一个 Ceph 存储集群,它有一个 Monitor 和两个 OSD 守护进程. ...

  9. K8S部署Redis Cluster集群

    kubernetes部署单节点redis: https://www.cnblogs.com/zisefeizhu/p/14282299.html Redis 介绍 • Redis代表REmote DI ...

随机推荐

  1. 网页入侵最后一道防线:CSP内容安全策略

    首先,什么是最后一道防线?网页入侵都有一个过程,简单来说,就是1.代码注入,2.代码执行. 对于黑客来说,代码注入后并不代表就万事大吉了,因为此时代码只是安静地躺在受害者的服务器里,什么坏事都没干呢! ...

  2. codeigniter框架的使用感受和注意事项

    codeigniter是一个轻量级的php的web框架,今年2月22日,正式发布了4.0版本.简称CI框架 先使用了CI的3.15版,基本上是不用安装,把框架文件放到web目录下,让后通过简单的配置, ...

  3. nes 红白机模拟器 第4篇 linux 手柄驱动支持

    小霸王学习机的真实手柄,实测CPU 占用 80% 接线图: 手柄读时序: joypad.c 驱动: 普通的字符设备驱动. #include <linux/module.h> #includ ...

  4. Simulink仿真入门到精通(十七) Simulink代码生成技术详解

    17.1 基于模型的设计 基于模型设计是一种流程,较之传统软件开发流程而言,使开发者能够更快捷.更高效地进行开发.适用范围包括汽车电子信号处理.控制系统.通信行业和半导体行业. V字模型开发流程整体描 ...

  5. search(1)- elasticsearch结构概念

    上篇提到选择了elasticsearch ES作为专业化搜索引擎的核心,这篇讨论一下ES的基本结构和应用概念.首先,从硬结构方面来讲:ES是在一个集群(cluster)环境里运行的,所以ES应该具备高 ...

  6. des 加密解密工具类

    最近在做des的双对称加密解密,特此记录一下. des对称加密,是一种比较传统的加密方式,其加密运算.解密运算使用的是同样的密钥,信息的发送者和信息的接收者在进行信息的传输与处理时,必须共同持有该密码 ...

  7. 单元测试 - Tests和UITests (一) 业务测试

    单元测试 假如我们今天去面试了,面试官问了一句“什么是单元测试?有没有使用?大概是针对那些情况进行单测的?单测意义从你实际使用中总结一下.” 这要在我没进行现在的单测之前这个问题我回答的可能就是“不好 ...

  8. .NET Conf: Xamarin专场会议3.23 开幕

    聚焦于 Xamarin 的 NET Conf 是一项免费的为期一天的直播活动,来自社区和.NET产品团队的演讲者正在使用Xamarin技术构建本机移动应用程序!Xamarin允许您使用C#(而不是Ja ...

  9. 2019-2020-2 20174313张博《网络对抗技术》Exp2-后门原理与实践

    一.实验名称 后门原理与实践. 二.实验目的与要求 ·掌握后门的概念,知道常见的后门种类,深入理解后门的运作原理. ·掌握几种常见的后门工具,学会利用后门工具进行一些简单操作. ·增强信息安全意识,认 ...

  10. [code]poj3349 Snowflake Snow Snowflakes

    哈希+挂链.可以用next数组挂链. ; type arr=..]of longint; var a,b:Array[..]of arr; next:Array[..]of longint; i,j, ...