在 Kubernetes(K8s)中,卷(Volume) 是用于解决容器内数据持久化、容器间数据共享以及与外部存储交互的核心机制。它本质上是一个可供 Pod 中容器访问的存储目录,生命周期独立于容器(容器重启或销毁后,卷中的数据可保留)。

一、卷的核心作用

  1. 数据持久化:容器本身是临时的(销毁后数据丢失),卷可将数据存储在容器外部(如本地磁盘、网络存储),确保数据不随容器消失。
  2. 容器间共享:同一 Pod 内的多个容器可通过挂载同一个卷实现数据共享(如前端容器生成的文件供后端容器处理)。
  3. 对接外部存储:卷支持多种存储类型(本地磁盘、NFS、云存储等),让 Pod 能便捷使用集群外的存储资源。

二、卷的类型与常见实例

K8s 支持多种卷类型,适用于不同场景,以下是常用类型及实例:

1. 临时卷(Ephemeral Volumes)

  • 特点:生命周期与 Pod 一致(Pod 销毁后卷也删除),但数据不依赖单个容器,适合临时缓存、日志等。

  • 常见类型

    • emptyDir:Pod 创建时自动生成的空目录,所有容器可读写,Pod 销毁后数据删除。

    实例:同一 Pod 内的两个容器共享数据

    yaml

    apiVersion: v1
    kind: Pod
    metadata:name: shared-pod
    spec:containers:- name: container-1image: busyboxcommand: ["sh", "-c", "echo 'hello from container1' > /shared/data.txt; sleep 3600"]volumeMounts:  # 挂载卷到容器内目录- name: shared-volumemountPath: /shared- name: container-2image: busyboxcommand: ["sh", "-c", "cat /shared/data.txt; sleep 3600"]volumeMounts:  # 挂载同一个卷- name: shared-volumemountPath: /sharedvolumes:  # 定义卷- name: shared-volumeemptyDir: {}  # 使用 emptyDir 类型
    

2. 持久卷(Persistent Volumes)

  • 特点:生命周期独立于 Pod(集群级资源),数据长期保留,需配合 PVC(PersistentVolumeClaim) 使用(详见前文 PV/PVC 概念)。
  • 实例:通过 PVC 挂载持久卷

    yaml

    apiVersion: v1
    kind: Pod
    metadata:name: pvc-pod
    spec:containers:- name: appimage: nginxvolumeMounts:- name: pv-storagemountPath: /usr/share/nginx/htmlvolumes:- name: pv-storagepersistentVolumeClaim:claimName: my-pvc  # 关联已创建的 PVC
    

3. 本地卷(Local Volumes)

  • 特点:使用节点(Node)本地磁盘作为存储,性能高但数据仅存于单个节点(节点故障可能丢失数据),适合对性能要求高的场景(如数据库临时缓存)。
  • 实例:挂载节点的 /data/local 目录

    yaml

    apiVersion: v1
    kind: Pod
    metadata:name: local-volume-pod
    spec:containers:- name: appimage: busyboxcommand: ["sleep", "3600"]volumeMounts:- name: local-storagemountPath: /mnt/localvolumes:- name: local-storagehostPath:path: /data/local  # 节点上的实际目录type: DirectoryOrCreate  # 若目录不存在则创建
    

4. 网络卷(Network Volumes)

  • 特点:数据存储在网络中的远程服务器,可跨节点访问,适合多 Pod 共享数据(如 NFS、Ceph、云存储等)。
  • 实例:挂载 NFS 网络存储

    yaml

    apiVersion: v1
    kind: Pod
    metadata:name: nfs-pod
    spec:containers:- name: appimage: busyboxcommand: ["sleep", "3600"]volumeMounts:- name: nfs-storagemountPath: /mnt/nfsvolumes:- name: nfs-storagenfs:server: 172.25.254.254  # NFS 服务器 IPpath: /nfs/shared  # NFS 共享目录
    

三、卷的使用流程

  1. 定义卷:在 Pod 的 volumes 字段中声明卷的名称和类型(如 emptyDirhostPathpersistentVolumeClaim 等)。
  2. 挂载卷:在容器的 volumeMounts 字段中,将卷挂载到容器内的指定路径(mountPath)。
  3. 使用数据:容器通过挂载路径读写卷中的数据,实现数据共享或持久化。

四、核心总结

  • 本质:卷是 Pod 内的存储目录,生命周期独立于容器,解决数据持久化和共享问题。
  • 类型:根据场景选择(临时存储用 emptyDir,持久化用 PV/PVC,本地高性能用 hostPath,跨节点共享用 NFS 等网络卷)。
  • 关键:卷是 Pod 级资源,同一 Pod 内的容器可共享卷;跨 Pod 共享需依赖网络存储或 PV/PVC。

通过卷,K8s 实现了容器与存储的解耦,让应用数据管理更灵活、可靠。

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

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

相关文章

线性回归原理推导与应用(十一):多重共线性

多重共线性的定义与影响 多重共线性(Multicollinearity)是指线性回归模型中的解释变量之间由于存在精确相关关系或高度相关关系而使模型估计失真或难以估计准确。 根据定义和影响程度,可以将多重共线性分为极端共线性和一般共线性。极端共线…

day082-初识ElasticStack

文章目录0. 老男孩思想-人性十大需求1. ElasticStack介绍1.1 ELK(**Elastic Stack**)1.2 logstash和filebeat的区别2. ElasticSearch单点部署2.1 下载ElasticSearch软件包2.2 安装软件并修改配置文件2.3 启动并测试服务3. ElasticSearch集群部署3.1 安装…

软考 系统架构设计师系列知识点之杂项集萃(139)

接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(138) 第257题 系统工程利用计算机作为工具,对系统的结构、元素、()和反馈等进行分析,以达到最优()、最优设计、最优管理和最优控制的目的。霍尔(A.D.Hall)于1969年提出了系统方法的三维结构体系,通常称为霍…

solidity地址、智能合约、交易概念

目录地址address 的两种子类型(Solidity 0.5.0)address分类address 的常用操作和属性总结交易交易的基本结构(由外部发起)Gas交易生命周期函数调用与交易常见交易场景总结地址 在 Solidity 中,地址(addres…

jwt原理及Java中实现

一、JWT 是什么?解决什么问题? 我们先来一张图看一下这个过程:JWT(JSON Web Token)是一种把“认证信息(Claims) 完整性校验”打包成 自包含 的字符串的规范。 它主要用于无状态认证:…

大数据在UI前端的应用深化研究:用户行为数据的跨平台关联分析

大数据在UI前端的应用深化研究:用户行为数据的跨平台关联分析每天,你在手机 App 里点了一个按钮、在网页上滑了两屏、又在小程序里停留了 3 秒,这些看似零散的动作,其实都在被悄悄记录。过去,这些数据只能各自躺在自己…

C++11基础——— 右值引用和移动语义

1. C11的发展历史 C11是C的第⼆个主要版本,并且是从C98起的最重要更新。它引入了大量更改,标准化了既有实践,并改进了对C程序员可用的抽象。在它最终由ISO在2011年8月12日采纳前,人们曾使用名称“C0x”,因为它曾被期待…

【一】Django框架版本介绍

【一】Django框架版本介绍 【一】Django框架版本 ● Django 是一个高级的Python Web框架,由荷兰人Armin Ronacher创建。 ● 随着版本的迭代和功能的不断优化,Django在处理异步请求方面也有了显著的进步。 【1】Django1.x ● 默认不支持异步 ● Django 1.…

git 大文件上传不了的 问题

你 还是在 cmd 里执行,Select-String 是 PowerShell 的命令,cmd 不认识。 请务必按下面的步骤 切换到 PowerShell 再运行。✅ 1. 打开 PowerShell(不要再用 cmd)最简单: 在资源管理器里进入 D:\linShiWenjian\my-react…

【FIX】go运行报错“missing go.sum entry for module providing package”解决方案

🔧 ​核心解决方案​**运行 go mod tidy**​ ​作用​:自动同步 go.mod和 go.sum文件,添加缺失依赖并移除无用条目。 go mod tidy​适用场景​:90% 的校验和缺失问题可通过此命令解决。 ​注意​:若项目含私有仓库&…

【实操教学】ArcGIS 如何进行定义坐标系

一、坐标系定义的方式创建数据时可直接完成坐标系定义;针对已创建的数据集(涵盖要素类、要素数据集及栅格数据集),则可通过以下这种方式定义:工具箱工具调用:使用 ArcGIS 工具箱中的 “定义投影&#xff08…

如何使用Windows自带的PnPUtil命令来禁用/停用和启用硬件设备

我来详细讲解一下如何使用 Windows 自带的 PnPUtil 命令来禁用(停用) 和启用硬件设备。 PnPUtil (即插即用实用工具) 是一个功能强大的命令行工具,主要用于安装、卸载、枚举和修改驱动程序包。对于硬件的启用和禁用,它通过操作设…

鸿蒙Next媒体展示组件实战:Video与动态布局全解析

今天我们来深入探讨HarmonyOS Next中几种核心媒体展示组件的使用方法,通过实际代码示例展示如何打造丰富的多媒体体验。HarmonyOS Next为开发者提供了一套强大而灵活的媒体展示组件,使开发者能够轻松实现视频播放、动态布局适应、全屏切换等常见多媒体功…

复现RoboDK机器人校准功能(以Staubli TX2‑90L / TX200机械臂为测试对象,实测精度接近原厂)

本算法复现了 RoboDK 的机器人校准功能:在训练集的理论校准后精度与 RoboDK 一致,在测试集的实测精度接近 Staubli 原厂。 参考:RoboDK 机器人校准功能(https://robodk.com.cn/cn/robot-calibration) 特性 支持 SDH 参…

Vue常用指令和生命周期

Vue 是基于 MVVM模型的前端 JavaScript 框架。Vue 核心是数据驱动视图&#xff0c;通过响应式数据实现视图自动更新。<template><div>{{ message }}</div><button click"changeMsg">修改内容</button> </template><script se…

深度学习周报(8.25~8.31)

目录 摘要 Abstract 1 RNN学习意义 2 RNN基础知识 2.1 核心思想 2.2 传播 2.3 优缺点 2.4 变体结构与应用场景 3 RNN结构代码示例 4 总结 摘要 本周主要学习了循环神经网络的学习意义与基础知识&#xff0c;重点了解了RNN循环连接的核心思想、前向传播与反向传播过程…

借助 LAMBDA 公式,实现单元格区域高效转换

新特性介绍 “转换单元格&#xff08;Transform&#xff09;” 功能允许用户将自定义的单参数 LAMBDA 公式应用于选中的单元格区域。用户可选择公式参数的作用域 —— 按单元格、按行、按列或按整个区域。 转换完成后&#xff0c;源单元格区域会被清空&#xff0c;转换后的区…

LeetCode 01背包 494. 目标和

494. 目标和给你一个非负整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 ‘’ 或 ‘-’ &#xff0c;然后串联起所有整数&#xff0c;可以构造一个 表达式 &#xff1a; 例如&#xff0c;nums [2, 1] &#xff0c;可以在 2 之前添加 ‘’ &#xff0c;在 1 之前…

Dify 1.8.0 全网首发,预告发布

距离Dify 1.7.2过去两周了 Dify 1.8.0 又跟大伙见面了&#xff01; 1.8.0&#xff0c;属于主版本号不变、但第二位数字更新的“阶段性大更”&#xff0c;意味着功能上的显著优化和体验上的重要升级。 根据官方的Github日志&#xff0c;这一版本将继续聚焦三大核心方向&#x…

基于LangChain框架搭建AI问答系统(附源码)

AI问答系统1. 背景知识2. 问答系统流程3. 知识问答系统相关组件3.1 文档加载器3.2 文档切割器3.3 嵌入模型包装器3.4 向量存储库3.5 模型包装器3.6 链组件4. 问答系统演示4.1 问答程序4.2 演示大模型回答效果5.问答系统代码1. 背景知识 在人工智能技术飞速发展的今天&#xff…