当前位置: 首页 > 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: 为什么有时应…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...