Kubernetes 存储解释

文章目录

  • 存储架构
    • 1、三个概念: pv , pvc ,storageclass
    • 2、三种PV的访问模式
    • 3、三个重声明策略(reclaim policy)
    • 4、四个阶段(volumn phase)
    • 5、四个PV选择器
    • 6、五个可移植性建议
    • 7、六个生命周期

存储架构

有可能是最简单的Kubernetes存储解释

1、三个概念: pv , pvc ,storageclass

  • pv: 持久化卷, 支持本地存储和网络存储, 例如hostpathceph rbdnfs等,只支持两个属性, capacityaccessModes。其中capacity只支持size的定义,不支持iops等参数的设定,accessModes有三种
    • ReadWriteOnce(被单个node读写);
    • ReadOnlyMany(被多个nodes读);
    • ReadWriteMany(被多个nodes读写);
  • pvc : 对pv或者storageclass资源的请求, pvc 对 pv 类比于pod 对不同的cpu, mem的请求。
  • storageclass: 另外一种提供存储资源的方式, 提供更多的层级选型, 如iops等参数。 但是具体的参数与提供方是绑定的。 如aws和gce它们提供的storageclass的参数可选项是有不同的。

2、三种PV的访问模式

  • ReadWriteOnce:是最基本的方式,可读可写,但只支持被单个Pod挂载。
  • ReadOnlyMany:可以以只读的方式被多个Pod挂载。
  • ReadWriteMany:这种存储可以以读写的方式被多个Pod共享。

不是每一种存储都支持这三种方式,像共享方式,目前支持的还比较少,比较常用的是NFS。在PVC绑定PV时通常根据两个条件来绑定,一个是存储的大小,另一个就是访问模式。

3、三个重声明策略(reclaim policy)

  • Retain : 手动重新使用
  • Recycle: 基本的数据擦除 (“rm -rf /thevolume/*”)
  • Delete: 相关联的后端存储卷删除, 后端存储比如AWS EBS, GCE PD, Azure Disk, or OpenStack Cinder

需要特别注意的是只有本地盘和nfs支持数据盘Recycle 擦除回收, AWS EBS, GCE PD, Azure Disk, and Cinder 存储卷支持Delete策略

4、四个阶段(volumn phase)

一个存储卷会处于下面几个阶段中的一个阶段:

  • Available: 资源可用, 还没有被声明绑定;
  • Bound: 被声明绑定;
  • Released: 绑定的声明被删除了,但是还没有被集群重声明;
  • Failed: 自动回收失败;

5、四个PV选择器

在PVC中绑定一个PV,可以根据下面几种条件组合选择

  • Access Modes, 按照访问模式选择pv;
  • Resources, 按照资源属性选择;
  • Selector, 按照pv的label选择;
  • Class, 根据StorageClass的class名称选择, 通过annotation指定了Storage Class的名字, 来绑定特定类型的后端存储;

6、五个可移植性建议

  • 把要创建的 pvc,和 其它一系列配置放一起, 比如说deployment,configmap;
  • 不要把你的pv放在其它配置里, 因为用户可能没有权限创建pv;
  • 初始化pvc 模版的时候, 提供一个storageclass;
  • 在你的工具软件中,watch那些没有bound的pvc,并呈现给用户;
  • 集群启动的时候启用DefaultStorageClass, 但是不要指定某一类特定的class, 因为不同provisioner的class,参数很难一致;

7、六个生命周期

Provisioning, Binding, Using, Releasing, Reclaiming, Recycling

k8s对pv和pvc之间的交互的生命周期进行管理。

  • provisioning:配置阶段, 分为static, dynamic两种方式。静态的方式是创建一系列的pv,然后pvc从pv中请求。 动态的方式是基于storageclass的。;

  • Binding :绑定阶段, pvc根据请求的条件筛选并绑定对应的pv。 一但pvc绑定pv后, 就会排斥其它绑定,即其它pvc无法再绑定同一个pv,即使这个pv设定的access mode允许多个node读写。 此外 ,pvc 如果匹配不到相应条件的pv, 那么就会显示unbound状态, 直到匹配为止。 需要注意的是,pvc请求100Gi大小的存储,即使用户创建了很多50Gi大小的存储PV, 也是无法被匹配的。;

  • Using: 使用阶段, pods 挂载存储, 即在pod的template文件中定义volum使用某个pvc。;

  • Releasing:释放阶段, 当pvc对象被删除后, 就处于释放阶段。 在这个阶段, 使用的pv还不能被其它的pvc请求。 之前数据可能还会留存下来, 取决于用户在pv中设定的policy, 见persistentVolumeReclaimPolicy

  • Reclaiming:重声明阶段。 到这个阶段, 会告诉cluster如何处理释放的pv。 数据可能被保留(需要手工清除), 回收和删除。动态分配的存储总是会被删除掉的。;

  • Recycling - 回收阶段。回收阶段会执行基本的递归删除(取决于volum plugins的支持),把pv上的数据删除掉, 以使pv可以被新的pvc请求。 用户也可以自定义一个 recycler pod , 对数据进行删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/734488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣:数组篇

1、数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合。 需要两点注意的是 数组下标都是从0开始的。数组内存空间的地址是连续的 因为数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址。 …

centos7迁移龙蜥anolis8.8报错

1、报错 UPGRADE INHIBITED Upgrade has been inhibited due to the following problems:1. Inhibitor: Possible problems with remote login using root account#解决 sed -i s/#PermitRootLogin yes/PermitRootLogin yes/g /etc/ssh/sshd_configgrep…

【你也能从零基础学会网站开发】Web建站之javascript入门篇 JavaScript中的表达式、运算符、位运算、递增递减

🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注 JavaScript…

kali当中不同的python版本切换(超简单)

kali当中本身就是自带两个python版本的 配置 update-alternatives --install /usr/bin/python python /usr/bin/python2 100 update-alternatives --install /usr/bin/python python /usr/bin/python3 150 切换版本 update-alternatives --config python 0 1 2编号选择一个即可…

【MySQL篇】 MySQL基础学习

文章目录 前言基础数据类型DDL数据库操作查询数据库创建数据库删除数据库使用数据库 DDL表操作创建表查询表修改表删除 DML-增删改添加数据更改数据删除数据 DQL-查询基础查询条件查询聚合函数分组查询排序查询分页查询编写顺序 DML-用户及权限用户管理权限控制 函数字符串函数…

挑战杯 基于设深度学习的人脸性别年龄识别系统

文章目录 0 前言1 课题描述2 实现效果3 算法实现原理3.1 数据集3.2 深度学习识别算法3.3 特征提取主干网络3.4 总体实现流程 4 具体实现4.1 预训练数据格式4.2 部分实现代码 5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 基于深度学习机器视觉的…

【Frida实战】浅析Java层静态方法与实例方法的Hook技术及其应用

引言* 在移动安全研究领域,动态代码插桩工具Frida以其强大的功能和灵活的特性深受广大研究人员喜爱。本文将聚焦Frida在Java层面上对静态方法和实例方法的Hook过程,通过一个具体的Android应用示例,详细介绍其Hook原理和操作步骤。 Hook静态…

浅谈2024 年 AI 辅助研发趋势!

目录 ​编辑 引言 一、AI辅助研发现状 1. 技术发展 2. 工具集成 3. 应用场景 二、AI辅助研发趋势 1. 更高的自动化程度 2. 更高的智能化程度 3. 更多的领域应用 4. 更高的重视度 三、结论 四. 完结散花 悟已往之不谏,知来者犹可追 创作不易&#xff…

业务场景: arraylist我有1000条数据我现在要往每条数据后面加一个123,除了循环添加还有什么方法?

在Java中,如果您有一个ArrayList包含1000条数据,并且想要往每条数据后面添加一个固定的字符串(比如"123"),那么循环遍历这个列表并逐个修改元素是最直接的方法。不过,如果您想要避免显式的for循环…

Golang 方法的接收器 receiver 指针和值的区别

一、如果receiver是指针类型 package mainimport "fmt"type Count struct {count int }func main() {c : Count{count: 0}c.incr()fmt.Println(c.count)c2 : &cc2.incr()fmt.Println(c2.count) }func (c *Count) incr() {c.count }//打印结果 1 2 incr 方法的 …

Windows系统Starting the Docker Engine 一直转圈解决方法

Windows系统Starting the Docker Engine 一直转圈解决方法 – 蓝队云 docker初始化安装时的WSL两个问题_unexpected wsl error-CSDN博客 docker desktop 因为某些原因无法打开报错wsl_docker desktop something went wrong-CSDN博客

【金三银四】刷刷八股吧,准备新的一周的到来

目录 前言1、Java中和equals有什么区别?2、String, StringBuffer, StringBuilder区别3、项目中对泛型的使用4、运行时数据区是怎样的?线程安全(即线程私有)的有哪些?5、对象实例、类信息、常量、静态变量分别在运行时数…

(南京观海微电子)——I3C协议介绍

特点 两线制总线:I2C仅使用两条线——串行数据线(SDA)和串行时钟线(SCL)进行通信,有效降低了连接复杂性。多主多从设备支持:I2C支持多个主设备和多个从设备连接到同一总线上。每个设备都有唯一…

题目 2036: 散列存储

题目描述: 给出了几个长度为n(n<20)的全排列&#xff0c;求某个全排列是否在上述的位置出现过。 代码: package lanqiao;import java.util.*;public class Main{public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();int m …

Python脚本,用于从MagicEden和HowRare API获取指定集合的拍卖列表和稀有度信息,并计算每个NFT的稀有度价格

一个Python脚本,用于从MagicEden和HowRare API获取给定集合的拍卖列表和稀有度信息,并计算每个NFT的稀有度价格。 代码的主要功能如下: 1. 导入所需的模块:`sys`,`time`,`requests`。 2. 定义了一个延迟时间`delay`,用于在每个API请求之间添加一定的延迟。 3. 定义了一个…

Mac安装oh-my-zsh

目录 命令下载 卸载命令 注意 命令下载 curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh 卸载命令 uninstall_oh_my_zsh 注意 终端init的时候并不会执行~/.bash_profile、~/.bashrc等脚本了&#xff0c; 这是因为其默认启动执行脚本…

017-$route、$router

$route、$router 1、$route2、$router 1、$route $route 对象表示当前的路由信息&#xff0c;包含了当前 URL 解析得到的信息。包含当前的路径&#xff0c;参数&#xff0c;query对象等。 使用场景&#xff1a; 获取路由传参&#xff1a;this.$route.query、this.$route.par…

C语言---位运算符练习(二)---单身狗问题

C语言—位运算符练习(二)—单身狗问题 文章目录 前言一、单身狗问题&#xff08;1&#xff09;1.题目2.思路3.参考代码 二、单身狗问题&#xff08;2&#xff09;1.题目2.思路3.代码的实现 前言 上一篇博客&#xff0c;我们留了一个思考题—单身狗问题&#xff0c;下面咱们对这…

【布局:1688,阿里海外的新筹码?】1688重新布局跨境海外市场:第一步开放1688API数据采集接口

2023年底&#xff0c;阿里巴巴“古早”业务1688突然成为“重头戏”&#xff0c;尤其宣布正式布局跨境业务的消息&#xff0c;一度引发电商圈讨论。1688重新布局跨境海外市场&#xff1a;第一步开放1688API数据采集接口 2023年11月中旬&#xff0c;阿里财报分析师电话会上&…

VUE——v-cloak指令

VUE——v-cloak指令 属性选择器&#xff0c;可以控制vue实例化完成前的dom样式 功能&#xff1a;利用vue实例化后v-cloak属性会消失&#xff0c;设置其样式 官网介绍 没用前效果&#xff1a;当vue没渲染完前&#xff0c;界面效果会看到{{aboutCloak}}字符&#xff0c;影响用户…