当前位置: 首页 > news >正文

Kubernetes存储 - Node本地存储卷

官方文档

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

EmptyDir

  • 这种类型的Volume将在Pod被调度到Node时进行创建,在初始状态下目录中是空的,所以被命名为空目录(Empty Directory),它与Pod具有相同的生命周期,当Pod被销毁时,Node上相应的目录也会被删除。同一个Pod中的多个容器都可以挂载这种Volume
  • 由于这种Volume的临时性特点,它通常可以应用在下面的场景中
  1. 基于磁盘进行合并排序操作时所需要的暂存空间

基于磁盘进行合并排序指的是对某些磁盘中无法存放的、特别大的数据进行排序,首先将这些数据分成若干块,先把每块内存排序,然后再多路归并,合并为全量数据

  1. 长时间计算任务的中间检查点文件

在长时间计算任务中,中间检查点文件(checkpoint files)指的是用于保存计算任务当前状态的文件,它们的主要目的是在任务执行过程中定期保存进度,以便在任务发生故障或者中断时,任务可以从最近的检查点继续,而不是从头开始,这种机制在高性能计算、大规模数据处理、机器学习训练等领域尤为重要

  1. 为某个Web服务提供的临时网站内容文件

在Web服务中,临时网站内容文件通常指的是那些在短时间内提供给用户访问的文件,这些文件可能是为了特定的活动、测试、故障排除或临时展示内容而生成的。以下是一些可能的情况:

  1. 缓存文件
    缓存文件是Web服务器或内容分发网络(CDN)生成的临时文件,用于加速内容交付。它们可以包括网页、图片、脚本和样式表等,通过缓存减少服务器负担和提高用户访问速度。
  2. 会话文件
    会话文件存储用户会话数据,例如登录状态、购物车内容等。这些文件通常在用户会话结束或超时后被删除。
  3. 临时上传文件
    当用户上传文件到服务器时,这些文件可能先存储在一个临时目录中,等待进一步处理(如病毒扫描、格式转换等),然后才移动到最终存储位置。
  4. 临时生成的内容
    临时生成的内容文件可能包括:
    测试页面:用于开发和测试的临时页面。
    错误页面:在服务器遇到错误时生成的临时错误页面。
    动态生成内容:如用户请求生成的PDF文件、报告或其他动态内容。
  5. 临时配置文件
    在某些情况下,Web服务可能需要临时配置文件来测试新的配置或在故障排除过程中使用。这些文件在测试或故障排除完成后会被删除。
  6. 临时静态内容
    有时,Web服务需要临时展示某些静态内容,例如临时公告、活动页面或维护通知。这些文件在活动结束或维护完成后会被移除。
  7. 临时备份文件
    在进行更新或维护时,服务器可能会创建临时备份文件,以防更新过程中出现问题。这些备份文件在确认更新成功后会被删除。
  8. 临时日志文件
    在调试或监控过程中,服务器可能生成临时日志文件以记录特定事件或操作。这些文件在调试或监控完成后会被清理。
  9. 临时数据文件
    在处理用户请求时,服务器可能生成临时数据文件以存储中间计算结果或临时数据。这些文件在请求处理完成后会被删除。

示例:假设一个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存储卷的一些应用场景如下:
  1. 容器应用的关键数据需要被持久化到宿主机上
  2. 需要使用Docker中的某些内部数据,可以将主机的/var/lib/docker目录挂载到容器内
  3. 监控系统,例如cAdvisor(container advisor)需要采集宿主机/sys目录下的内容
  4. 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使用的是宿主机的文件系统,所以在使用时有以下注意事项
  1. 对于具有相同HostPath设置的多个Pod(例如通过podTemplate)来说,可能会被Master调度到多个Node上运行,但如果多个Node上HostPath中的文件内容(例如是配置文件不同),则各Pod应用的运行可能出现不同的结果
  2. 如果管理员设置了基于存储资源情况的调度策略,则HostPath目录下的磁盘空间将无法计入Node的可用资源范围内,可能出现与预期不同的调度结果
  3. 如果是之前不存在的路径,则由kubelet创建出来的目录或文件的owner将是root,这意味着如果容器内的运行用户不是root,则将无法对该目录进行写操作,除非将容器设置为特权模式(Privileged),或者由管理员修改HostPath的权限以使得非root用户可写
  4. 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、分桶抽样 数据随机抽样 在大规模数据量的数据分析及建模任务中,往往针对全量数据进行挖掘分析时会十分耗时和占用集群资源&#xff0c…...

微信答题小程序产品研发-需求分析与原型设计

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

基础模板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的功能&#xff0c;所以开发了一个简易的统一生成导出方法。 依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.0.1</version…...

LeetCode707 设计链表

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

[Mysql-DDL数据操作语句]

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

google 浏览器插件开发简单学习案例:TodoList;打包成crx离线包

参考&#xff1a; google插件支持&#xff1a; https://blog.csdn.net/weixin_42357472/article/details/140412993 这里是把前面做的TodoList做成google插件&#xff0c;具体网页可以参考下面链接 TodoList网页&#xff1a; https://blog.csdn.net/weixin_42357472/article/de…...

如何学习Doris:糙快猛的大数据之路(从入门到专家)

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

梯度下降算法,gradient descent algorithm

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

Spring boot 2.0 升级到 3.3.1 的相关问题 (六)

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

C++模版基础知识与STL基本介绍

目录 一. 泛型编程 二. 函数模板 1. 概念 2. 函数模版格式 3. 函数模版的原理 4. 模版函数的实例化 (1). 隐式实例化 (2.) 显式实例化 5. 模版参数的匹配原则 三. 类模板 1. 类模板的定义格式 2. 类模板的实例化 四. STL的介绍 1. 什么是STL&#xff1f; 2. STL的版…...

Android 防止重复点击

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

使用阿里云云主机通过nginx搭建文件服务器

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、准备基础环境二、安装配置nginx三、阿里云安全组配置安全组配置 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/4ee96f38312e4771938e40f463987…...

微信Android一面凉经(2024)

微信Android一面凉经(2024) 笔者作为一名双非二本毕业7年老Android, 最近面试了不少公司, 目前已告一段落, 整理一下各家的面试问题, 打算陆续发布出来, 供有缘人参考。今天给大家带来的是《微信Android一面凉经(2024)》。 面试职位: 微信-客户端开发工程师-基础功能(广州) And…...

VMware、Docker - 让虚拟机走主机代理,解决镜像封禁问题

文章目录 虚拟机全局代理配置找到 VMnet8 的 IPv4 地址代理相关配置虚拟机代理配置 Docker 代理配置修改镜像修改 Docker 代理配置 虚拟机全局代理配置 找到 VMnet8 的 IPv4 地址 a&#xff09;打开此电脑&#xff0c;输入 “控制面板”&#xff0c;然后回车. b&#xff09;之…...

版本管理|为什么不推荐使用Git Rebase

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

每日算法题 17---205.同构字符串

题目 205.同构字符串 要求 给定两个字符串 s 和 t &#xff0c;判断它们是否是同构的。如果 s 中的字符可以按某种映射关系替换得到 t &#xff0c;那么这两个字符串是同构的。每个出现的字符都应当映射到另一个字符&#xff0c;同时不改变字符的顺序。不同字符不能映射到同一…...

【Python张量计算实战宝典】:20年AI架构师亲授5大高频场景优化技巧,错过再等一年

第一章&#xff1a;张量计算基础与PyTorch/TensorFlow双框架选型指南张量是深度学习的核心数据结构&#xff0c;本质为多维数组&#xff0c;支持自动微分、GPU加速与动态/静态计算图构建。理解其内存布局&#xff08;如C-contiguous vs. Fortran-contiguous&#xff09;、广播机…...

如何用DoubleQoL模组将《工业队长》的游戏效率提升10倍?

如何用DoubleQoL模组将《工业队长》的游戏效率提升10倍&#xff1f; 【免费下载链接】DoubleQoLMod-zh 项目地址: https://gitcode.com/gh_mirrors/do/DoubleQoLMod-zh 还在为《工业队长》中漫长的等待和繁琐的操作而烦恼吗&#xff1f;DoubleQoLMod-zh模组正是为你量身…...

突破性SLAM实战:如何用SLAM Toolbox彻底改变机器人定位与建图工作流

突破性SLAM实战&#xff1a;如何用SLAM Toolbox彻底改变机器人定位与建图工作流 【免费下载链接】slam_toolbox Slam Toolbox for lifelong mapping and localization in potentially massive maps with ROS 项目地址: https://gitcode.com/gh_mirrors/sl/slam_toolbox …...

Homebrew卸载与重装指南:彻底清理残留文件的正确姿势

Homebrew深度清理与重装实战&#xff1a;从残留文件追踪到ARM架构优化 每次系统升级或开发环境切换时&#xff0c;那些隐藏在系统深处的Homebrew残留文件就像房间里扫不尽的灰尘——明明已经卸载了所有公式&#xff0c;却在重新安装时遇到各种诡异的权限错误或版本冲突。作为m…...

Qwen3-TTS-VoiceDesign实战案例:用‘撒娇稚嫩萝莉声’描述生成高拟真TTS音频

Qwen3-TTS-VoiceDesign实战案例&#xff1a;用‘撒娇稚嫩萝莉声’描述生成高拟真TTS音频 1. 项目概述与核心价值 Qwen3-TTS-VoiceDesign是一个让人惊艳的语音合成模型&#xff0c;它最大的特点就是能用简单的文字描述&#xff0c;生成你想要的任何声音风格。想象一下&#xf…...

深度解析PDFMathTranslate:揭秘AI如何实现毫秒级学术文档翻译与精准排版保留

深度解析PDFMathTranslate&#xff1a;揭秘AI如何实现毫秒级学术文档翻译与精准排版保留 【免费下载链接】PDFMathTranslate PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译&#xff0c;支持 Google/DeepL/Ollama/Op…...

软件工程实战:如何用数据流图搞定图书馆管理系统设计(附避坑指南)

软件工程实战&#xff1a;如何用数据流图搞定图书馆管理系统设计&#xff08;附避坑指南&#xff09; 图书馆管理系统是软件工程课程中的经典案例&#xff0c;但许多初学者在绘制数据流图时容易陷入"画了等于没画"的困境——要么遗漏关键外部实体&#xff0c;要么数据…...

从AHB到AXI:手把手带你用Verilog仿真看Outstanding如何提升SoC数据吞吐

从AHB到AXI&#xff1a;深入解析Outstanding机制如何优化SoC数据吞吐效率 在复杂的SoC设计中&#xff0c;总线架构的选择直接影响系统性能。传统AHB总线虽然结构简单&#xff0c;但在高并发场景下容易成为瓶颈。AXI协议通过引入Outstanding、Out-of-order等机制&#xff0c;显著…...

科哥CAM++镜像入门指南:快速搭建中文语音识别系统

CAM镜像入门指南&#xff1a;快速搭建中文语音识别系统 1. 系统概述 CAM说话人识别系统是一个基于深度学习的声纹识别工具&#xff0c;由科哥封装为易用的Docker镜像。它能快速判断两段语音是否来自同一说话人&#xff0c;并提取语音特征向量&#xff0c;适用于身份验证、语音…...