Kubernetes存储 - Node本地存储卷
官方文档
- Kubernetes管理的Node本地存储目前有三种,分别是
EmptyDir,HostPath,Local
,EmptyDir
是一种与Pod同生命周期的Node临时存储;HostPath是Node的目录;Local是基于持久卷(PV
)管理的Node目录。接下来详细说明这几种类型如何以存储卷的形式使用
EmptyDir
- 这种类型的Volume将在Pod被调度到Node时进行创建,在初始状态下目录中是空的,所以被命名为空目录(Empty Directory),它与Pod具有相同的生命周期,当Pod被销毁时,Node上相应的目录也会被删除。同一个Pod中的多个容器都可以挂载这种Volume
- 由于这种Volume的临时性特点,它通常可以应用在下面的场景中
- 基于磁盘进行合并排序操作时所需要的暂存空间
基于磁盘进行合并排序指的是对某些磁盘中无法存放的、特别大的数据进行排序,首先将这些数据分成若干块,先把每块内存排序,然后再多路归并,合并为全量数据
- 长时间计算任务的中间检查点文件
在长时间计算任务中,中间检查点文件(checkpoint files)指的是用于保存计算任务当前状态的文件,它们的主要目的是在任务执行过程中定期保存进度,以便在任务发生故障或者中断时,任务可以从最近的检查点继续,而不是从头开始,这种机制在高性能计算、大规模数据处理、机器学习训练等领域尤为重要
- 为某个Web服务提供的临时网站内容文件
在Web服务中,临时网站内容文件通常指的是那些在短时间内提供给用户访问的文件,这些文件可能是为了特定的活动、测试、故障排除或临时展示内容而生成的。以下是一些可能的情况:
- 缓存文件
缓存文件是Web服务器或内容分发网络(CDN)生成的临时文件,用于加速内容交付。它们可以包括网页、图片、脚本和样式表等,通过缓存减少服务器负担和提高用户访问速度。- 会话文件
会话文件存储用户会话数据,例如登录状态、购物车内容等。这些文件通常在用户会话结束或超时后被删除。- 临时上传文件
当用户上传文件到服务器时,这些文件可能先存储在一个临时目录中,等待进一步处理(如病毒扫描、格式转换等),然后才移动到最终存储位置。- 临时生成的内容
临时生成的内容文件可能包括:
测试页面:用于开发和测试的临时页面。
错误页面:在服务器遇到错误时生成的临时错误页面。
动态生成内容:如用户请求生成的PDF文件、报告或其他动态内容。- 临时配置文件
在某些情况下,Web服务可能需要临时配置文件来测试新的配置或在故障排除过程中使用。这些文件在测试或故障排除完成后会被删除。- 临时静态内容
有时,Web服务需要临时展示某些静态内容,例如临时公告、活动页面或维护通知。这些文件在活动结束或维护完成后会被移除。- 临时备份文件
在进行更新或维护时,服务器可能会创建临时备份文件,以防更新过程中出现问题。这些备份文件在确认更新成功后会被删除。- 临时日志文件
在调试或监控过程中,服务器可能生成临时日志文件以记录特定事件或操作。这些文件在调试或监控完成后会被清理。- 临时数据文件
在处理用户请求时,服务器可能生成临时数据文件以存储中间计算结果或临时数据。这些文件在请求处理完成后会被删除。示例:假设一个Web服务允许用户上传图片并对其进行处理(如调整大小或添加滤镜)。在这个过程中,上传的图片文件首先存储在一个临时目录中,等待处理完成后再移动到最终存储位置。处理过程中生成的中间文件(如调整大小后的图片)也可能存储在临时目录中,直到处理完成并返回给用户。
通过使用临时文件,Web服务可以更有效地管理资源,确保系统稳定性和性能,同时提供灵活的内容交付和处理能力。
- 在默认情况下,kubelet会在Node的工作目录下为Pod创建EmptyDir目录,这个目录的存储介质可能是本地磁盘、SSD磁盘或者网络存储设备,取决于环境的配置
- 另外,EmptyDir可以通过medium字段设置存储介质为Memory,表示使用基于内存的文件系统(tmpfs、RAM-backed filesystem)。虽然tmpfs的读写速度非常快,但与磁盘中的目录不同。当主机重启之后,tmpfs的内容就会被清空。此外,写入tmpfs的数据将被统计为容器的内存使用量,受到容器级别的内存资源上限(Memory Resource Limit)的限制
- 使用EmptyDir类型的存储卷的Pod非常简单,只需要在YAML配置中的volume内加上一条
emptyDir: {}
即可,如下所示
apiVersion: v1
kind: Pod
metadata:name: test-pod
spec:containers:- image: busyboxname: test-containervolumeMounts:- mountPath: /cachename: cache-volumevolumes:- name: cache-volumeemptyDir: {}
HostPath
- 这种类型的存储卷用于讲Node文件系统的目录或文件挂载到容器内部使用。对于大多数容器应用来说,都不需要使用宿主机的文件系统。适合使用HostPath存储卷的一些应用场景如下:
- 容器应用的关键数据需要被持久化到宿主机上
- 需要使用Docker中的某些内部数据,可以将主机的
/var/lib/docker
目录挂载到容器内 - 监控系统,例如cAdvisor(container advisor)需要采集宿主机/sys目录下的内容
- Pod的启动依赖于宿主机上的某个目录或文件就绪的场景
例子如下
apiVersion: v1
kind: Pod
metadata:name: hostpath-example-linux
spec:os: { name: linux }nodeSelector:kubernetes.io/os: linuxcontainers:- name: example-containerimage: registry.k8s.io/test-webservervolumeMounts:- mountPath: /fooname: example-volumereadOnly: truevolumes:- name: example-volume# 挂载 /data/foo,但仅当该目录已经存在时hostPath:path: /data/foo # 主机上的目录位置type: Directory # 此字段可选
- 由于HostPath使用的是宿主机的文件系统,所以在使用时有以下注意事项
- 对于具有相同HostPath设置的多个Pod(例如通过podTemplate)来说,可能会被Master调度到多个Node上运行,但如果多个Node上HostPath中的文件内容(例如是配置文件不同),则各Pod应用的运行可能出现不同的结果
- 如果管理员设置了基于存储资源情况的调度策略,则HostPath目录下的磁盘空间将无法计入Node的可用资源范围内,可能出现与预期不同的调度结果
- 如果是之前不存在的路径,则由kubelet创建出来的目录或文件的owner将是root,这意味着如果容器内的运行用户不是root,则将无法对该目录进行写操作,除非将容器设置为特权模式(Privileged),或者由管理员修改HostPath的权限以使得非root用户可写
- HostPath设置的宿主机目录或文件不会随着Pod的销毁而删除,在Pod不再存在之后,需要由管理员手工删除
相关文章:

Kubernetes存储 - Node本地存储卷
官方文档 Kubernetes管理的Node本地存储目前有三种,分别是EmptyDir,HostPath,Local,EmptyDir是一种与Pod同生命周期的Node临时存储;HostPath是Node的目录;Local是基于持久卷(PV)管理的Node目录。接下来详细说明这几种类型如何以存…...

Cocos Creator2D游戏开发-(2)Cocos 常见名词
场景(Scene): 它一个容器,容纳游戏中的各个元素,如精灵,标签,节点对象。它负责着游戏的运行逻辑,以帧为单位渲染这些内容。就是你理解到的那个场景; 个人理解就是一个画面, 一个游戏不同的关卡,会有不同的…...

【不同设备间的数据库连接】被连接设备如何开权限给申请连接的设备
为了方便叙述,简称申请连接数据库的设备为a,被连接的为b 1.确保在同一局域网下,检查a的ip 如果你设置的动态ip,那么每重启一次这个ip都会变。两种选择,每次都给b同步一下你的最新ip,或者a设置成静态ip。具…...

Whisper离线部署问题处理
Whisper是OpenAI开发一款开源语音识别模型,可以帮我们低成本的拥有语音识别的能力。具体的安装部署方法,我在这里就不详细说了,网上有很多相关文章: 使用OpenAI的Whisper 模型进行语音识别 (baidu.com) 我这里主要想说的是&…...

【Hive SQL】数据探查-数据抽样
文章目录 数据随机抽样1、随机数排序抽样(rand())2、数据块抽样(tablesample())3、分桶抽样 数据随机抽样 在大规模数据量的数据分析及建模任务中,往往针对全量数据进行挖掘分析时会十分耗时和占用集群资源,…...

微信答题小程序产品研发-需求分析与原型设计
欲知应候何时节,六月初迎大暑风。 我前面说过,我决意仿一款答题小程序,所以我做了大量的调研。 题库软件产品开发不仅仅是写代码这一环,它包含从需求调研、分析与构思、设计到开发、测试再到部署上线一系列复杂过程。 需求分析…...

基础模板Mybatis-plus+Springboot+Mysql开发配置文件
1.pom.xml <dependencies><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</version></dependency>// mybatisplus功能<dependency&g…...

java-poi实现excel自定义注解生成数据并导出
因为项目很多地方需要使用导出数据excel的功能,所以开发了一个简易的统一生成导出方法。 依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.0.1</version…...

LeetCode707 设计链表
前言 题目: 707. 设计链表 文档: 代码随想录——设计链表 编程语言: C 解题状态: 代码功底不够,只能写个大概 思路 主要考察对链表结构的熟悉程度,对链表的增删改查,比较考验代码功底以及对链表…...

[Mysql-DDL数据操作语句]
目录 DDL语句操作数据库 库: 查看:show 创建:creat 删除:drop 使用(切换):use 表: 查看:desc show 创建:create 表结构修改 rename as add drop modify change rename as …...

google 浏览器插件开发简单学习案例:TodoList;打包成crx离线包
参考: google插件支持: https://blog.csdn.net/weixin_42357472/article/details/140412993 这里是把前面做的TodoList做成google插件,具体网页可以参考下面链接 TodoList网页: https://blog.csdn.net/weixin_42357472/article/de…...

如何学习Doris:糙快猛的大数据之路(从入门到专家)
引言:大数据世界的新玩家 还记得我第一次听说"Doris"这个名字时的情景吗?那是在一个炎热的夏日午后,我正在办公室里为接下来的大数据项目发愁。作为一个刚刚跨行到大数据领域的新手,我感觉自己就像是被丢进了深海的小鱼—周围全是陌生的概念和技术。 就在这时,我的…...

梯度下降算法,gradient descent algorithm
定义:是一个优化算法,也成最速下降算法,主要的部的士通过迭代找到目标函数的最小值,或者收敛到最小值。 说人话就是求一个函数的极值点,极大值或者极小值 算法过程中有几个超参数: 学习率n,又称…...

Spring boot 2.0 升级到 3.3.1 的相关问题 (六)
文章目录 Spring boot 2.0 升级到 3.3.1 的相关问题 (六)spring-data-redis 和 Spring AOP 警告的问题问题描述问题调研结论解决方案方案1-将冲突的Bean 提升为InfrastructureBean方案2 其他相关资料 Spring boot 2.0 升级到 3.3.1 的相关问题 ÿ…...

C++模版基础知识与STL基本介绍
目录 一. 泛型编程 二. 函数模板 1. 概念 2. 函数模版格式 3. 函数模版的原理 4. 模版函数的实例化 (1). 隐式实例化 (2.) 显式实例化 5. 模版参数的匹配原则 三. 类模板 1. 类模板的定义格式 2. 类模板的实例化 四. STL的介绍 1. 什么是STL? 2. STL的版…...

Android 防止重复点击
1.第一种方式: // 两次点击按钮之间的点击间隔不能少于1000毫秒 private static final int MIN_CLICK_DELAY_TIME 700; private static long lastClickTime; /** * 是否是快速点击 * return */ public static boolean isFastClick() { …...

使用阿里云云主机通过nginx搭建文件服务器
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、准备基础环境二、安装配置nginx三、阿里云安全组配置安全组配置 
微信Android一面凉经(2024)
微信Android一面凉经(2024) 笔者作为一名双非二本毕业7年老Android, 最近面试了不少公司, 目前已告一段落, 整理一下各家的面试问题, 打算陆续发布出来, 供有缘人参考。今天给大家带来的是《微信Android一面凉经(2024)》。 面试职位: 微信-客户端开发工程师-基础功能(广州) And…...

VMware、Docker - 让虚拟机走主机代理,解决镜像封禁问题
文章目录 虚拟机全局代理配置找到 VMnet8 的 IPv4 地址代理相关配置虚拟机代理配置 Docker 代理配置修改镜像修改 Docker 代理配置 虚拟机全局代理配置 找到 VMnet8 的 IPv4 地址 a)打开此电脑,输入 “控制面板”,然后回车. b)之…...

版本管理|为什么不推荐使用Git Rebase
文章目录 什么是 Git Rebase?如何使用 Git Rebase?基本语法示例更多选项 注意事项何时使用何时避免其他注意事项 为什么需要谨慎使用 Git Rebase?面试中的常见问题问题 1: Git Rebase 和 Git Merge 有何不同?问题 2: 为什么有时应…...

Https post 请求时绕过证书验证方案
解决异常:Caused by: java.security.cert.CertificateException: No subject alternative names matching IP address xxx.xx.xx.xx found // Https POST 请求private cn.hutool.json.JSON PostGsData(String url, String appKey, String token, Map<String, Ob…...

C# 数组常用遍历方式
// 假设数组Point[] points new Point[2];// 第一种遍历 forfor (int i 0; i < points.Length; i){Point p points[i];Console.WriteLine($"X{p.X},y{p.Y}");}// 第二种遍历 foreachforeach (Point p in points){Console.WriteLine($"X{p.X},y{p.Y}"…...

【JavaScript】详解Day.js:轻量级日期处理库的全面指南
文章目录 一、Day.js简介1. 什么是Day.js?2. 安装Day.js 二、Day.js的基本用法1. 创建日期对象2. 格式化日期3. 解析日期字符串4. 操作日期5. 比较日期 三、Day.js的高级功能1. 插件机制2. 国际化支持 四、实际应用案例1. 事件倒计时2. 日历应用 在JavaScript开发中…...

AI算法与图像处理 | 吴恩达团队新作!多模态方向
本文来源公众号“AI算法与图像处理”,仅用于学术分享,侵权删,干货满满。 原文链接:吴恩达团队新作!多模态方向 研究评估了先进多模态基础模型在 10 个数据集上的多样本上下文学习,揭示了持续的性能提升。…...

云服务器Ubuntu18.04进行Nginx配置
云服务器镜像版本信息:Ubuntu 18.04 server 64bit,本文记录了在改版本镜像上安装Nginx,并介绍了Nginx配置文件目录,便于后面再次有需求时进行复习。 文章目录 Nginx的安装Nginx配置文件分析 Nginx的安装 1.执行下面命令进行安装…...

SQL labs-SQL注入(四,sqlmap对于post传参方式的注入)
本文仅作为学习参考使用,本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 序言:本文主要讲解基于SQL labs靶场,sqlmap工具进行的post传参方式的SQL注入。 传参方式有两类,一类是直接在url栏内进行url编码后进行的传参&am…...

R包:plot1cell单细胞可视化包
介绍 plot1cell是用于单细胞数据seurat数据对象的可视化包。 安装 ## You might need to install the dependencies below if they are not available in your R library. bioc.packages <- c("biomaRt","GenomeInfoDb","EnsDb.Hsapiens.v86&qu…...

Tent混沌人工蜂群与粒子群混合算法遇到问题,具体问题及解决方案如文。
🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 问题描述 Tent混沌人工蜂…...

Python文献调研(一)环境搭建
一、安装Python版本 1.点击进入Python官网 Download Python | Python.org 2.根据自己的需求选择python的版本,点击【Download】 3.自定义安装路径,记得勾选Add Python xxx to PATH 这步是自动配置环境变量的,如果忘记勾选,建议…...

URL重写
目录 步骤1 规则语法 Nginx URL重写规则语法 Apache URL重写规则语法 步骤2 规则配置 Apache URL重写规则配置 启用mod_rewrite模块 配置.htaccess文件 编写重写规则 测试重写规则 Nginx URL重写规则配置 配置server或location块 测试重写规则 步骤1 规则语法 Ngin…...