为什么要用volume?

首先。容器崩溃或重启时,所有的数据都会丢失,我们可以把数据保存到容器的外部,比如硬盘nfs,这样,即使容器没了,数据还在;第二就是容器之间是隔离的。我们如果想共享数据的话,就要使用volume,第三就是让容器能够使用外部的存储资源,比如公司的NAS存储、云硬盘

EmptyDir卷

EmptyDir,它是一个临时工作目录,Pod里的容器可以一起在上面放文件,交换数据,但是当pod被删除后,它就会被清空,它的生命周期跟pod是一致的,他提供给了应用一个临时缓存空间,比如下载临时文件,计算中间结果,他也让pod中的不同容器间实现了数据共享

HostPath卷

Host path,它是节点的本地存储,他将宿主机的文件挂载到pod中,但是要尽量少用,因为它会影响pod的可迁移性,Host path卷中的数据不会随着pod 删除而删除,因为它实实在在的存储在节点的磁盘中。比如运行kube-proxy 、CNI插件等系统守护进程的时候,需要访问/lib/models等主机目录,监控代理需要访问节点上的/proc或/sys文件系统来收集系统的指标。

PV/PVC

PV会为集群提供一块与pod和节点生命周期完全无关的持久化的网络存储,PV它由集群管理员预先配置,或者由storage class动态创建,它本身就是存储资源,比如一块nfs硬盘,PVC (persistent volume claim)是用户对存储的声明,用户在申领存储资源的时候需要声明,需要多大容量,需要什么访问模式,PVC会向系统申请合适的pv来绑定

工作原理就是:

管理员创建一批pv(或者配置一个storage class来实现动态供给)

用户在pod配置里定义一个PVC说明需要什么样的存储

K8s系统会为这个PVC找到一个匹配的pv,并与之绑定

用户在pod中通过引用PVC来挂载存储

pod删除后,PVC和PV依然存在,数据得以保留PV可以被回收,以备后续使用


Empty Dir的生命周期与pod同步,host path的生命周期与node同步,PV或PVC的生命周期是独立的


PV的访问方式

PV 的访问模式有四种:

- ReadWriteOnce:卷可以被一个节点以读写方式挂载。该访问模式也允许运行在同一节点上的多

Pod 访问卷。

- ReadOnlyMany:卷可以被多个节点以只读方式挂载。

- ReadWriteMany:卷可以被多个节点以读写方式挂载。

- ReadWriteOncePod:卷可以被单个 Pod 以读写方式挂载

PV的回收策略

K8s的PV主要支持三种回收策略,分别是retain delete和recycle 。

Return(保留)它的核心作用,是手动回收。当PVC被删除的时候,PV对象和其对应的外部存储资源以及其中的数据都会被保留下来,用户删除PVC时,与之绑定的PV不会被自动删除,它的状态会变成released在released状态下,这个PV不能再被新的PVC绑定。这时候我们可以将它挂载到某个pod上来查看其中的数据或者手动删除这个PV,但是这仅仅删除了k8s中的PV对象,外部的存储资源依然存在,所以我们还需要清理外部存储手动删除对应的外部存储卷才真正的释放空间,这适用于数据非常重要的场景,确保不会误删数据,是很多数据库生产环境中默认和推荐的策略,因为它提供了最高的数据安全性

第二种delete(删除)自动回收,当PVC被删除时,k8s会自动删除PV对象,并调用后端存储的接口释放并删除外部存储资源,这时候,存储空间被自动释放,数据会永久丢失。一般当存储缓存数据临时处理文件时,可以这样删除,及时释放存储资源,节省成本。

第三种是recycle,这种策略不安全且效率低,已经被取代,所以这里我们不做介绍。

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

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

相关文章

flutter工程

安装flutter 在VSCode中安装flutter extension、flutter组件 国内源下载flutter 3.35.2的SDK,安装,官网下载不了 将flutter安装目录加入环境变量中 D:\program\flutter_sdk\flutter\bin 执行 C:\Windows\System32>flutter --version Flutter 3.35.2 •…

C/C++ 高阶数据结构 —— 二叉搜索树(二叉排序树)

​ 🎁个人主页:工藤新一 ​ 🔍系列专栏:C面向对象(类和对象篇) ​ 🌟心中的天空之城,终会照亮我前方的路 ​ 🎉欢迎大家点赞👍评论📝收藏⭐文章…

stm32F4挂载emmc以及重定义printf

1.Cubemx SDIO USART 使用串口输出调试信息 FATFS Clock Configuration 防止堆栈溢出 2.Keil5 新建自定义文件夹及文件 将文件夹添加进工程 新建.c与.h文件,保存到自定义的文件夹,并添加到工程中 bsp_emmc.c #include "bsp_emmc.h" #include…

基于AI的大模型在S2B2C商城小程序中的应用与定价策略自我评估

摘要:本文聚焦电商行业,结合开源AI大模型与AI智能名片S2B2C商城小程序的技术特性,提出基于行业数据挖掘与自我评估的定价策略。通过分析行业价格分布与销量占比,结合商品设计、品牌创意度、商品丰富度及内功等评估指标&#xff0c…

中国移动云电脑一体机-创维LB2004_瑞芯微RK3566_2G+32G_开ADB安装软件教程

中国移动云电脑一体机-创维LB2004_瑞芯微RK3566_2G32G_开ADB安装软件教程简介:中国移动云电脑一体机-创维LB2004,显示器是23.8英寸1920x1080分辨率,安卓盒子配置是瑞芯微RK3566-四核-1.8GHz处理器-2G32G,预装Android11系统。具体操…

普蓝自研AutoTrack-4X导航套件平台适配高校机器人实操应用

在当前高校机器人工程、人工智能、自动化等专业的教学与科研中,师生们常常面临一个核心痛点:缺乏一套 “开箱即用、可深研、能落地” 的自主移动导航平台 —— 要么是纯仿真环境脱离实际硬件,要么是硬件零散需大量时间搭建,要么是…

2025年工会证考试题库及答案

一、单选题1.工会法人资格审查登记机关自收到申请登记表之日起(  )日内对有关申请文件进行审查,对审查合格者,办理登记手续,发放《工会法人资格证书》及其副本和《工会法人法定代表人证书》。A.二十B.十五C.六十D.三十答案:D 解析:第七条基…

【OpenGL】LearnOpenGL学习笔记17 - Cubemap、Skybox、环境映射(反射、折射)

上接:https://blog.csdn.net/weixin_44506615/article/details/150935025?spm1001.2014.3001.5501 完整代码:https://gitee.com/Duo1J/learn-open-gl | https://github.com/Duo1J/LearnOpenGL 一、立方体贴图 (Cubemap) 立方体贴图就是一个包含了6张2…

第十七章 ESP32S3 SW_PWM 实验

本章将介绍使用 ESP32-S3 LED 控制器(LEDC)。 LEDC 主要用于控制 LED,也可产生PWM信号用于其他设备的控制。该控制器有 8 路通道,可以产生独立的波形,驱动 RGB LED 等设备。 LED PWM 控制器可在无需 CPU 干预的情况下自动改变占空比&#xff…

Flink CDC如何保障数据的一致性

Flink CDC如何保障数据的一致性 前言 在大规模流处理中,故障是无可避免的。机器会宕机,网络会抖动。一个可靠的流处理引擎不仅要能高效地处理数据,更要在遇到这些故障时,保证计算结果的正确性。Apache Flink 正是因其强大的容错机…

Spring Boot 定时任务入门

1. 概述 在产品的色彩斑斓的黑的需求中,有存在一类需求,是需要去定时执行的,此时就需要使用到定时任务。例如说,每分钟扫描超时支付的订单,每小时清理一次日志文件,每天统计前一天的数据并生成报表&#x…

学习:uniapp全栈微信小程序vue3后台(6)

26.实现描述评分标签的双向数据绑定 /pages/wallpaper/picadd Array.prototype.splice() splice() 方法就地移除或者替换已存在的元素和/或添加新的元素。 二次确认 展现 确认标签 删除标签 温故知新: 标签: 关闭标签 27.uni-data-select调用云端分类…

Azure Marketplace 和 Microsoft AppSource的区别

微软的商业应用生态中,Azure Marketplace 和 Microsoft AppSource 是微软并行的两个主要“应用市场”(Marketplace),它们共同构成了微软的“商业市场”(Commercial Marketplace)计划,但服务的目…

完整实验命令解析:从集群搭建到负载均衡配置(2)

一、环境准备与基础网络配置1.1 节点角色与网络规划节点角色主机名所属网段IP 地址网关核心功能Web 服务器web110.1.8.0/2410.1.8.1110.1.8.10(后期调整为 10.1.8.20)部署 Nginx/HTTPD,提供 Web 服务Web 服务器web210.1.8.0/2410.1.8.1210.1.…

uniapp H5禁止微信浏览器长按出菜单,只针对图片

一、问题描述 如图:uni-image>img,img {pointer-events: none;-webkit-pointer-events: none;-ms-pointer-events: none;-moz-pointer-events: none; }uni-image::before {content: ;position: absolute;top: 0;bottom: 0;left: 0;right: 0;background: transpa…

【机器学习】 15 Gaussian processes

本章目录 15 Gaussian processes 515 15.1 Introduction 515 15.2 GPs for regression 516 15.2.1 Predictions using noise-free observations 517 15.2.2 Predictions using noisy observations 518 15.2.3 Effect of the kernel parameters 519 15.2.4 Estimating the kern…

Vue加载速度优化,verder.js和element.js加载速度慢解决方法

1. 使用CDN 这里把常用的vue、vuex、elementui、echarts、axios都引入成cdn的方式 1、在index.html引入CDN 找到public/index.html在上方引入下边的cdn。 [!NOTE] 引入script的时候,一定要把vue.js放到最上边,最先引入,不然后边的js加载会…

49.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--扩展功能--集成网关--Refit跨服务调用

Refit是一个用于.NET平台的REST库,它可以将REST API转换为实时类型安全的接口。通过Refit,我们可以轻松实现微服务之间的跨服务调用,使服务间通信变得更加简单和类型安全。本文将介绍如何在我们的项目中使用Refit来实现微服务间的通信。 一、什么是Refit Refit是一个强大的REST…

日志ELK、ELFK、EFK

一.ELK架构Elasticsearch Logstash Kibana 数据库日志处理日志显示1.logstash的使用(1)input:输入(2)filter:处理(3)output:输出2.ELFK架构Filebeat-->Elasticsearc…

【CUDA进阶】MMA分析Bank Conflict与Swizzle(下)

目录前言1. bank conflict 分析2. 通过 padding 解决 bank conflict3. mma 搭配 wmma 实现矩阵乘法计算3.1 代码实现3.2 补充:stmatrix_sync 函数分析3.3 补充:__shfl_sync 函数详解4. swizzle 原理讲解5. swizzle 实现思路讲解结语下载链接参考前言 学习…