一  介绍持久卷的动态配置原理

    前面介绍的pv以及pvc,都需要kubernets集群管理员来支持实际的底层存储,但是kubernets还支持动态配置持久卷来自动化完成这个任务集群管理员可以创建一个持久卷配置,并定义一个或多个StorageClass,从而让用户选择他们想要的持久卷类型,用户可以在其持久卷声明里面引用StorageClass,而配置程序会根据PVC里面对存储的大小以及访问模式创建符合条件的PV,最后用户在pod中根据名称引用pvc。

二  利用StorageClass资源定义可用存储类型

      在用户创建持久卷声明之前,管理员需要创建一个或者多个ClassStorage资源,然后才能创建新的持久卷

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ex-sc
provisioner: kubernets.io/gce-pd
parameters:
type: pd-ssd
zone: europe-west1-b
  • provisioner为配置持久卷的卷插件
  • paramters传递给paramters的参数

三  用户在持久卷声明中引用StorageClass的名称

    

    用户可以在pvc里面引用SC的名称

apiVersion: v1
kind: persistentvolumeClaim
metadata:
name: ex-pvc-sc
spec:
storageClassName: ex-sc
resources:
requests:
storage: 100Mi
accessModes:
- ReadWriteOnce
  • 在这个pvc的定义中指定了需要引用的StorageClass的名称
  • 如果指定的SC不存在会看到配置程序失败
  • 可以看到确实生成了一个pv,并且其大小和访问模式都符合用户创建的pvc,并且默认的回收策略是Delete
  • 并且配置程序还会为pv提供真实的存储空间

四 存储类

  4.1  了解存储类的使用优点

    集群管理员提供各种各样的存储类,之后研发人员再决定对应用使用哪一个最合适的存储类,SC的好处在于,声明是通过名称来引用它的,因此在不同的集群中,只要SC的名称相同,那么pvc就可以在不同的集群间进行移植。

  4.2 更简单的使用持久化存储的方式

    集群里面都有存储类,都用户在创建pvc的时候不指明使用存储类的时候,会去使用默认的存储类

  4.3  若用户希望不使用配置程序来自动化去创建pv,仅仅需要在pvc里面此般配置即可

......
kind: persistentvolumeclaim
spec:
storageClassName: ""

  4.4  最后通过一幅图来完整了解动态持久卷供应全貌

  • 如果集群内部尚未持久卷配备程序,则管理员的首要任务则是在集群内部创建持久卷配备程序
  • 管理员创建一个或者多个SrorageClass并将其标记为默认值(如果不存在)
  • 用户创建一个pvc引用其中一个StorageClass或者直接使用默认值
  • kubernets查找其中引用的StorageClass和配置程序并根据PVC请求的大小和访问模式以及参数在StorageClass配置新的PV
  • 置备程序指定了真实的存储,创建一个持久卷,并将其绑定PVC
  • 用户穿件一个包含名称引用PVC的存储卷pod

kubernets之持久卷的动态配置的更多相关文章

  1. 通过搭建MySQL掌握k8s(Kubernetes)重要概念(上):网络与持久卷

    上一篇"通过实例快速掌握k8s(Kubernetes)核心概念"讲解了k8s的核心概念,有了核心概念整个骨架就完整了,应付无状态程序已经够了,但还不够丰满.应用程序分成两种,无状态 ...

  2. Rancher 构建 CI/CD 自动化流程 - 动态配置 Jenkins-slave(二)

    一.说明 1.1 说明 前面介绍采用 Jenkinsfile + KubernetesPod.yaml 方式进行部署项目(Rancher 构建 CI/CD 自动化流程 - 动态配置 Jenkins-s ...

  3. Kafka动态配置实现原理解析

    问题导读 Apache Kafka在全球各个领域各大公司获得广泛使用,得益于它强大的功能和不断完善的生态.其中Kafka动态配置是一个比较高频好用的功能,下面我们就来一探究竟. 动态配置是如何设计的? ...

  4. 使用 FIO 对 Kubernetes 持久卷进行 Benchmark:读/写(IOPS)、带宽(MB/s)和延迟

    工具 Dbench https://github.com/leeliu/dbench 用法 编辑 dbench.yaml 文件中的 storageClassName 以匹配你自己的 Storage C ...

  5. Quartz 在 Spring 中如何动态配置时间--转

    原文地址:http://www.iteye.com/topic/399980 在项目中有一个需求,需要灵活配置调度任务时间,并能自由启动或停止调度. 有关调度的实现我就第一就想到了Quartz这个开源 ...

  6. winform app.config文件的动态配置

    获取 获取应用程序exe.config文件中  节点value值 /// <summary> /// 功能: 读取应用程序exe.config文件中 /// appSettings节点下 ...

  7. Spring动态配置多数据源

    Spring动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性.而这样的方案就会不同于常见的单一数据实例的方案,这就要程序在运行时根据当时 ...

  8. Struts2的处理结果(三)——动态配置结果

    Struts2的处理结果(三) --动态配置结果 1.使用表达式语法 示例: <struts> <constant name="struts.enable.DynamicM ...

  9. 4、android xml中drawableTop(drawableBoottom、drawableLeft、drawableRight)在java代码中的动态配置

    做安卓开发的朋友都知道,我们在xml中可以通过这样来对button设置其上部或者(下.左.右)的图片资源: 那么如果需要动态配置图片呢?我们不得不使用java代码来进行操作: Drawable dra ...

随机推荐

  1. 四、Jmeter安装插件

    Jmeter安装插件方法和使用 1-下载Jmeter管理jar包 下载地址:https://jmeter-plugins.org/install/Install/ 2-点击下载 plugins-man ...

  2. Python的基本介绍

    我认为Python打破了传统语言的各种细节,让我对编程语音有了全新认识 Python的优势: 可移植性高,解释性更加简单,这两点在编程语言发展到现在已经成为不可或缺的一部分,而很多种编程语言能做到这几 ...

  3. 自动化管理平台rundeck的安装方法

    简介 RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程.通过命令行或者web界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自 ...

  4. AdaBoost 算法-分析波士顿房价数据集

    公号:码农充电站pro 主页:https://codeshellme.github.io 在机器学习算法中,有一种算法叫做集成算法,AdaBoost 算法是集成算法的一种.我们先来看下什么是集成算法. ...

  5. SpringBoot从入门到精通教程(三)

    在上一篇中,我们已经讲了,SpringBoot 如何构建项目,和SpringBoot的HelloWorld, 那这一节我们继续讲 Thymeleaf Thymeleaf 官网: Thymeleaf T ...

  6. 史上最全Xshell and Xftp 工具的使用

    文章目录 什么是xshell 解决: 安装Xshell Xshell怎么建立连接 Xshell如果修改已有连接信息? 修改,背景色,字体,编码 Xshell导出已有的登录信息 Xftp的使用 XFP建 ...

  7. 初级程序需要掌握的SQL(一)

    之前我也是,是一个看视频学习的小白,以前老是喜欢通宵看视频,一天10小时小时的学习量,一点效率都没有,就想写一个博客,来帮助大家回顾的SQL语句, 因为我也是初级,所以名字就叫初级程序员需要掌握的sq ...

  8. mysqld程序结构介绍

    说明:mysqld程序结构模型就是------> SQL语句的执行过程· 分为三大部分:连接层,SQL层,存储引擎层 #1.连接层功能 (1).TCP/IP或者Socket的连接方式    (2 ...

  9. 微服务 - 服务消费(六)Ribbon

    Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具.它是一个基于HTTP和TCP的客户端负载均衡器.它可以通过在客户端中配置ribbonServer ...

  10. 【代码周边】npm是What?

    社区 程序员自古以来就有社区文化: 社区的意思是:拥有共同职业或兴趣的人们,自发组织在一起,通过分享信息和资源进行合作.虚拟社区的参与者经常会在线讨论相关话题,或访问某些网站.前端程序员也有社区,世界 ...