【K8s】专题十二(2):Kubernetes 存储之 PersistentVolume

本文内容均来自个人笔记并重新梳理,如有错误欢迎指正!

如果对您有帮助,烦请点赞、关注、转发、订阅专栏!


专栏订阅入口

Linux 专栏 | Docker 专栏 | Kubernetes 专栏


往期精彩文章

【Docker】(全网首发)Kylin V10 下 MySQL 容器内存占用异常的解决方法

【Docker】(全网首发)Kylin V10 下 MySQL 容器内存占用异常的解决方法(续)

【Docker】MySQL 源码构建 Docker 镜像(基于 ARM 64 架构)


目录

一、基本介绍

二、资源清单(示例)

1、使用本地存储

2、使用 NFS 存储

3、使用 CSI 存储(如阿里云 NAS)

三、相关说明

1、状态类型(Status)

2、访问模式(AccessModes)

3、回收策略(persistentVolumeReclaimPolicy)


一、基本介绍

在 Kubernetes 中,PersistentVolume(持久化卷,PV)是一种与存储相关的资源对象,可以定义存储容量、访问模式、回收策略、存储插件等信息。PV 具有独立的生命周期,不会随着 Pod 的销毁被删除。PV 的生命周期包括配置、绑定、使用、保护、回收几个阶段。

🔔 PV 对象不属于任何命名空间!


二、工作原理
  • 定义对象:静态模式下,管理员预先在集群中定义 PV 对象,指定其存储容量、访问模式、回收策略、存储插件等配置信息
  • 创建对象:静态模式下,按照管理员预先定义好的资源清单创建 PV 对象;动态模式下,StorageClass 根据 PVC 的申请动态创建 PV 对象
  • 绑定:当一个 PVC 对象创建后,Kubernetes 会寻找一个匹配的 PV 进行绑定,这个过程可以是立即的,也可以是延迟的
  • 使用:PVC 对象与 PV 对象完成绑定后,Pod 就可以通过挂载 PVC 来访问持久化存储。Pod 的资源清单中会包含对 PVC 对象的引用,Kubernetes 负责将与 PVC 对象绑定的 PV 对象挂载到 Pod 的容器中
  • 回收策略:PV 支持三种回收策略:Retain、Recycle、Delete。当 PVC 对象被销毁时,Kubernetes 会根据 PV 的回收策略来处理 PV 对象


三、资源清单(示例)
1、使用本地存储
  • HostPath 方式
apiVersion: v1
kind: PersistentVolume
metadata:name: demo-pv
spec:capacity:storage: 1GiaccessModes:- ReadWriteManypersistentVolumeReclaimPolicy: Recycle / Retain / Delete     # PV 回收策略hostPath:path: /data/nfs
  • Local 方式
apiVersion: v1
kind: PersistentVolume
metadata:name: demo-pv
spec:capacity:storage: 1GiaccessModes:- ReadWriteManypersistentVolumeReclaimPolicy: Recycle / Retain / Delete     # PV 回收策略local:path: /data/nfsnodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: xxxxoperator: Invalues:- xxxx🔔 Local 方式必须要添加 nodeAffinity,否则创建时会报错:
spec.nodeAffinity: Required value: Local volume requires node affinity

2、使用 NFS 存储
apiVersion: v1
kind: PersistentVolume
metadata:name: demo-pv
spec:capacity:storage: 1GiaccessModes:- ReadWriteManypersistentVolumeReclaimPolicy: Recycle / Retain / Delete     # PV 回收策略nfs:server: xx.xx.xx.xx                                 # 指定 NFS 服务器地址path: /data/nfs                                     # 指定 NFS 服务器目录

3、使用 CSI 存储(如阿里云 NAS)
apiVersion: v1
kind: PersistentVolume
metadata:name: demo-pv
spec:capacity:storage: 1GiaccessModes:- ReadWriteManypersistentVolumeReclaimPolicy: Recycle / Retain / Delete     # PV 回收策略csi:driver: com.example.team/csi-drivervolumeHandle: existingVolumeName                      # 与PV 名称保持一致readOnly: falsevolumeAttributes:server: "xxxx"path: "/xxxx"mountOptions:- nolock,tcp,noresvport- vers=3


四、相关说明
1、状态类型(Status)

PV 对象创建后,通常会存在以下几种状态:

  • Available:可用,还未被 PVC 对象绑定
  • Bound:已绑定,已经被 PVC 对象绑定
  • Released:已释放,即 PVC 对象已被删除,但 PV 资源未被集群重新声明(与 Retain 回收方式相关)
  • Failed:已失败,即 PV 对象回收失败

2、访问模式(AccessModes)

在 PV 对象的资源清单中,可以定义以下几种访问模式:

  • ReadWriteOnce:该模式为读写权限,只能被单个 Node 节点挂载

  • ReadOnlyMany:该模式为只读权限,可以被多个 Node 节点挂载

  • ReadWriteMany:该模式为读写权限,可以被多个 Node 节点挂载

3、回收策略(persistentVolumeReclaimPolicy)

在 PV 对象的资源清单中,可以定义以下几种回收策略:

  • Recycle:循环策略,该策略允许保留 PV 对象,并可以再次被新创建的 PVC 对象绑定
  • Retain:保留策略,该策略允许保留 PV 对象,但不可以再次被新创建的 PVC 对象绑定
  • Delete:删除策略(默认),该策略不保留 PV 对象

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

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

相关文章

Python学习-打工人挣钱

编程案例 example one: # 假设小王每天可以挣500元,周内每天花60,周末每天花100,一年365天可以挣多少钱?MoneySum=0 for i in range(365):if i % 7 in [6,0]:MoneySum

笔试题(6)

1 、static 的用法(定义和用途) 1)用 static 修饰局部变量:使其变为静态存 储方式(静态数据区),那么这个局部变量在函 数执行完成之 后不会被释放,而是继续保留在内存中。 2)用 static 修饰全局…

【C++题解】1146. 求S的值

欢迎关注本专栏《C从零基础到信奥赛入门级(CSP-J)》 问题:1146. 求S的值 类型:递归基础、函数 题目描述: 求 S12471116…的值刚好大于等于 5000 时 S 的值。 输入: 无。 输出: 一行&…

自然语言处理系列三十四》 语义相似度》同义词词林》代码实战

注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】 文章目录 自然语言处理系列三十四HanLP自然语言处理工具包代码实战同义词…

原生js中的防抖节流笔记

防抖,单位时间内,频繁触发,只执行最后一次 效果演示 优化前,不断触发,浪费性能 优化后,只在指定时间内触发 演示代码 import debounce from "/node_modules/lodash-es/debounce.js"; const oBox docu…

宿舍管理系统设计与分析

第一章 管理信息系统概述 在人类进入21世纪之际,随着社会的组织化程度以及企业生产的社会化程度越来越高,信息作为一种资源已经和材料、能源并称为现代社会化发展的三大支柱之一。管理信息系统是融科学、信息科学、系统工程以及现代通讯技术、计算机技术…

大数据-92 Spark 集群 SparkRDD 原理 Standalone详解 ShuffleV1V2详解 RDD编程优化

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

ollama+llama3.1 405B 简介

ollamallama3.1 简介 Llama 3.1是一款来自Meta的最新型号,提供8B、70 B和405 B模型。 llama3.1:latestllama3.1:8bllama3.1:70bllama3.1:405bllama3.1:8b-instruct-fp16llama3.1:8b-instruct-q2_Kllama3.1:8b-instruct-q3_K_Sllama3.1:8b-instruct-q3_K_Mllama3.1…

WSL-ubuntu下载安装配置cudnn

下载 安装cuDnn的话需要和CUDA版本对应,可参考官网: cuDNN Archive | NVIDIA Developer 我的cuda是11.8 这个cuDNN8.9.7_Linux直接下载: https://developer.nvidia.com/downloads/compute/cudnn/secure/8.9.7/local_installers/11.x/cudn…

简约好看音乐播放器网页网站MP4播放器源码

源码介绍 简约好看音乐播放器网页网站MP4播放器源码,music是存放音乐的文件夹,添加音乐也是非常简单,参考上图自己研究去吧,不多说了。 效果截图 源码下载 简约好看音乐播放器网页网站MP4播放器源码

[笔记]中间件基础 - 进一步阅读的扩展点

mqtt肯定可以称为中间件,对吧? MQTT(Message Queuing Telemetry Transport)是一种轻量级、开放源代码的发布/订阅传输协议,由IBM公司发起并作为一个开源项目开发。它通常用于物联网(IoT)设备之…

JavaSE基础(12)——文件、递归、IO流

1、IO流 Input:输入,写数据,数据从磁盘加载到内存(程序)中。 Output:输出,读数据,数据从内存(程序)存储到磁盘中。 流:不管是读还是写&#xf…

wxml与标准的html的异同?

WXML(WeiXin Markup Language)与标准的HTML(HyperText Markup Language)在构建前端界面时,既有相似之处,也存在显著的差异。以下是对两者异同点的详细分析: 相似之处 标签结构: 两…

Docker中镜像文件的打包传输、容器导出镜像及虚拟机端口映射的实现

内网私有仓库 1、Docker 私有仓库 是集中存放镜像的地⽅,⽽注册服务器 (Registry)是存放仓库的具体服务器。仓库可以被认为是⼀个具体 的项⽬或⽬录。 Docker 公共仓库:https://hub.docker.com 2、Docker 私有仓库的作⽤&#…

C语言试题(含答案解析)

单选 1.下面C程序的运行结果为&#xff08;&#xff09; int main(void) {printf("%d", B < A);return 0; }A.编译错误 B.1 C.0 D.运行错误 A’的ascii码值为65&#xff0c;‘B’的ascii码值为66&#xff0c;‘B’<‘A’是不成立的&#xff0c;返回0&#xf…

[嵌入式 C 语言] 知识库

一、数据类型 1.1 基本数据类型 自定义类型基础类型占用字节数取值范围描述mls8char1-128 to 1278 位有符号整数mlu8unsigned char10 to 2558 位无符号整数mlvu8volatile unsigned char10 to 2558 位无符号整数&#xff0c;具有 volatile 属性mls16short2-32768 to 3276716 位…

设计模式六大原则(三)--里氏替换原则

1. 简介 1.1. 概述 里氏替换原则(Liskov Substitution Principle,简称LSP)是面向对象设计的基本原则之一。该原则由计算机科学家Barbara Liskov提出,旨在指导开发者如何更好地设计类和对象之间的关系。里氏替换原则强调的是子类可以扩展父类的功能,但不应改变原有功能。…

electron 两个渲染进程之间通信

一、使用主进程作为中介 使用主进程作为中介相对较为灵活&#xff0c;但可能会增加主进程的负担 1. 从一个渲染进程向主进程发送消息 在发送消息的渲染进程中&#xff0c;可以使用 ipcRenderer 模块向主进程发送消息。例如&#xff1a; const { ipcRenderer } require(&qu…

kubernetes k8s Secret 概述与配置讲解

目录 1 Secret概述 1.1 Secret是什么&#xff1f; 1.2 使用Secret 1 Secret概述 1.1 Secret是什么&#xff1f; 上面我们学习的Configmap一般是用来存放明文数据的&#xff0c;如配置文件&#xff0c;对于一些敏感数据&#xff0c;如密码、私钥等数据时&#xff0c;要用sec…

看图学sql之sql 中的UNION 和union all

UNION 用于合并两个或者多个 SELECT 语句的结果集 语法&#xff1a; SELECT column1, column2 ... FROM table1, table2 [WHERE condition1]UNION / UNION ALLSELECT column1, column2 ... FROM table1, table2 [WHERE condition2] 数据分析社区直达 免费数据分析资料下载。…