PersistentVolume(PV)的回收策略、访问策略和状态是Kubernetes存储管理中的重要概念。

回收策略

  1. Retain:当PV的回收策略设置为Retain时,即使对应的PersistentVolumeClaim(PVC)被删除,PV也不会被自动删除。PV将进入Released状态,此时管理员可以手动回收PV,或者重新创建一个PVC来绑定这个PV。如果PV中包含重要数据,这种策略可以确保数据不会因PVC的删除而丢失。
  2. Recycle:当PV的回收策略设置为Recycle时,当PVC被删除后,PV中的数据将被清除(类似于执行rm -rf /thevolume/*),然后PV将变为Available状态,可以被新的PVC重新绑定。这种策略可以节省存储空间,但需要注意数据丢失的风险。
  3. Delete:当PV的回收策略设置为Delete时,当PVC被删除后,对应的PV也会被自动删除。这种策略适用于那些不再需要的PV,或者PV中的数据可以重新生成的情况。

访问策略

PV的访问策略通过accessModes字段来指定,它决定了PV可以以何种方式被访问。Kubernetes支持以下三种访问模式:

  1. ReadWriteOnce(RWO):PV可以被单个节点以读写模式挂载。这是最常见的访问模式,适用于大多数应用。
  2. ReadOnlyMany(ROX):PV可以被多个节点以只读模式挂载。这种模式适用于需要共享数据但不需要写入的应用。
  3. ReadWriteMany(RWX):PV可以被多个节点以读写模式挂载。这是最少见的访问模式,因为它需要存储后端支持多个节点同时读写。
  4. ReadWriteOncePod(RWOP):k8s v1.22引入的一种新的PV访问模式。与ReadWriteOnce(RWO)模式类似,RWOP也允许一个节点以读写方式挂载PV,但是RWOP更进一步地限制了这个访问权限,确保整个集群中只有一个Pod可以读取或写入该PV。

在选择PV的回收策略和访问策略时,需要根据应用的需求和存储后端的特性来进行权衡。例如,如果PV中包含重要数据,那么可能需要选择Retain策略来避免数据丢失;如果PV中的数据可以重新生成,那么可以选择Delete策略来节省存储空间。同样,如果应用需要同时从多个节点读写数据,那么需要选择RWX访问模式;如果只需要从单个节点读写数据,那么可以选择RWO访问模式。

状态

PV的状态可以反映其当前的可用性和使用情况。以下是PV可能的状态及其含义:

  1. Available(可用):PV当前未被任何PVC(PersistentVolumeClaim)绑定,可以被任何匹配的PVC绑定。
  2. Bound(已绑定):PV已经被一个PVC绑定,并且该PVC已经被一个Pod使用。此时,PV的存储资源已经被Pod独占使用。
  3. Released(已释放):PVC被删除,但是对应的PV还没有被集群自动回收。此时,PV处于空闲状态,但还不能被其他PVC绑定,需要等待一段时间(由管理员设置)后才能重新变为Available状态。
  4. Failed(失败):PV自动回收失败。这可能是因为PV所在的存储后端出现问题,或者PV的回收策略设置不正确等原因导致的。

需要注意的是,PV的状态是动态变化的,随着PVC的创建、绑定、删除等操作而发生变化。管理员需要密切关注PV的状态,并根据实际情况进行相应的操作,以确保集群中的存储资源能够被高效地利用和管理。

PV的回收策略、访问策略和状态的更多相关文章

  1. Memcache 内存分配策略和性能(使用)状态检查【转】

    前言: 一直在使用Memcache,但是对其内部的问题,如它内存是怎么样被使用的,使用一段时间后想看看一些状态怎么样?一直都不清楚,查了又忘记,现在整理出该篇文章,方便自己查阅.本文不涉及安装.操作. ...

  2. H3C三层交换机S5500初始配置+网络访问策略

    DHCP中继配置命令 dhcp relay address-check enable 命令用来使能DHCP 中继的地址匹配检查功能. undo dhcp relay address-check ena ...

  3. java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

    java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...

  4. 配置 Sliverlight 跨域访问策略

    Silverlight程序在访问非本域资源时,需要在相应的域根目录下建立跨域访问策略文件才能进行访问. 文件名:clientaccesspolicy.xml 文件内容: <?xml versio ...

  5. <K, V>型缓存:LRU策略 FIFO策略

    <K, V>型缓存:LRU策略 FIFO策略 这两种替换策略都是通过 LinkedHashMap 实现 LinkedHashMap: LinkedHashMap 继承自 HashMap,所 ...

  6. Memcache 内存分配策略和性能(使用)状态检查

    前言: 一直在使用Memcache,但是对其内部的问题,如它内存是怎么样被使用的,使用一段时间后想看看一些状态怎么样?一直都不清楚,查了又忘记,现在整理出该篇文章,方便自己查阅.本文不涉及安装.操作. ...

  7. iptables log日志记录功能扩展应用:iptables自动配置临时访问策略,任意公网登录服务器

    一.修改日志记录: 1. 修改配置文件: vi /etc/rsyslog.conf 添加以下内容 #iptables log kern.=notice /var/log/iptables.log 2. ...

  8. Netty 内存回收之 noCleaner 策略

    前言 对于堆外内存,使用 System.gc() 是不靠谱的,依赖老年代 FGC 也是不靠谱的,而且大部分调优指南都设置了 -DisableExplicitGC 禁用 System.gc().所以主动 ...

  9. 基于CORS的GeoServer跨域访问策略

    GeoServer的跨域访问问题,有多种解决方法,本文介绍一种基于CORS的GeoServer跨域访问方法. CORS简介 CORS是一个W3C标准,全称是"跨域资源共享"(Cro ...

  10. TP-Link访问策略

    参考资料: http://service.tp-link.com.cn/detail_article_111.html

随机推荐

  1. FFmpeg的录制命令

    FFmpeg的录制命令 命令的作用 它可以捕捉桌面窗口,摄像头的视频流和麦克风的音频流. 命令的格式 ffmpeg [输入格式] [输入选项] -i [输入设备索引] [输出选项] 输出文件 其中输入 ...

  2. SpringCloud-07-Hystrix

    Hystrix 熔断器 1.Hystrix 概述 Hystix 是 Netflix 开源的一个延迟和容错库,用于隔离访问远程服务.第三方库,防止出现级联失败(雪崩). 雪崩:一个服务失败,导致整条链路 ...

  3. Eclipse引用第三方jar包中中文注释为乱码问题

    1.修改Eclipse中文本文件的默认编码:windows->Preferences->general->Workspace->Textfile encoding设置为UTF- ...

  4. Rating 算法

    Rating 算法 这是一种 OJ 常用的算法,下面进行介绍 公式 $ Rating $ 的计算公式如下: $ Rating = R + K(P - E) $ 这里 $ R $ 表示当前 $ Rati ...

  5. 图像列表组件(TImageList)

    TImageList 组件是一组同样尺寸的图像列表,每一个图像由它的Index值查询. 1.TImageList组件的典型用法 图形列表用于建立和管理大量的图像,主要是配合菜单或者工具栏按钮的使用.图 ...

  6. 【JS】因两道Promise执行题让我产生自我怀疑,从零手写Promise加深原理理解

    壹 ❀ 引 其实在去年七月份,博客所认识的一个朋友问了我一个关于Promise执行先后的问题,具体代码如下: const fn = (s) => ( new Promise((resolve, ...

  7. Spring Boot学生信息管理系统项目实战-1.项目介绍

    1.获取源码 需要源码的朋友,请捐赠任意金额后留下邮箱发送:) 2.项目背景 刚开始自己帮教师朋友写的,核心是学生信息的导入导出功能.后来又扩展了几个模块. 水平一般能力有限,觉着有用的朋友可以拿去自 ...

  8. win32 - 将线程重定向到另一个函数(附带Suspend的解释)

    Suspend: 挂起指定的线程 备注:不要永远挂起线程, 因为在Win32中,进程堆是线程安全的对象,并且由于在不访问堆的情况下很难在Win32中完成很多工作,因此在Win32中挂起线程极有可能使进 ...

  9. redis7源码分析:redis 启动流程

    1. redis 由 server.c 的main函数启动 int main(int argc, char **argv) { ... // 上面的部分为读取配置和启动命令参数解析,看到这一行下面为启 ...

  10. Navicat安装包和激活工具

    链接:https://pan.baidu.com/s/11YuOKdgGakt3E8CL80aA2g 提取码:h4f3