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

k8s的volume

一、volume介绍

        volume是Pod中能够呗多个容器访问的共享目录。Kubernetes的Volume概念、用途和目的与Docker的Volume比较类似,但两者不能等价。首先,Kubernetes中的Volume定义在Pod上,然后被一个Pod里的多个容器挂载到具体的文件目录下;其次,Kubernetes中的Volume与Pod的生命周期相同,但与容器的生命周期不相关,当容器中止或者启动时,Volume中的数据也不会丢失。Kubernetes支持多种类型的Volume,例如GlusterFS、Ceph等先进的分布式文件存储。Volume的使用也比较简单,在大多数情况下,先在Pod上声明一个Volume,然后在容器里引用Volume并Mount到容器里某个目录上

总结来说:

        为了保证数据的持久性,必须保证数据在外部存储不在docker容器中,为了实现数据的持久性存储,在宿主机和容器内做映射,可以保证在容器的生命周期结束,数据依旧实现持久性存储。但是在k8s中,由于pod分布在各个不同的节点之上,并不能实现不同节点之间持久性数据的共享,并且,在节点故障时,可能会导致数据的永久性丢失。为此,k8s就引入了外部存储卷的功能

k8s volume支持的类型

        kubectl explain pod.spec.volumes

常用分类

        emptyDir(临时目录):pod删除,数据也会被清除,这种存储成为emptyDIr,用于数据的临时存储

        hostPath(宿主机目录映射):可以持久化,但不可以跨主机

        本地的SAN(ISCSI,FC)、NAS(nfs,cifs,http)存储

        分布式存储(glusterfs,rbd,cephfs)

        云存储(EBS,Azure,Disk)

总结:

        k8s要使用存储卷,需要2步:

        1.在pod定义volume,并指明关联到那个存储设备

        2.在容器使用volume mount进行挂载

二、emptyDir存储卷

        一个emptyDir第一次创建是在一个pod被指定到具体node的时候,并且会一直存在pod的生命周期当中,正如它的名字一样,它初始化是一个空目录,pod中的容器都可以读写这个目录,这个目录可以被挂到各个容器相同或者不相同的路劲下。当一个pod因为任何原因被一尺的时候,这些数据会被永久删除。注意:一个容器崩溃了不会导致数据的丢失,因为容器的崩溃并不移除pod。

emptyDir

相关文章:

  • 苍穹外卖(缓存商品、购物车)
  • OpenVLA:大语言模型用于机器人操控的经典开源作品
  • 使用Aspose.Words将Word转换为HTML时,字体样式丢失问题及解决方法
  • keil 中优化等级的bug
  • 聊聊Spring AI Alibaba的RedisChatMemory
  • JavaEE-多线程实战01
  • 关系型数据库PostgreSQL for Mac 保姆级使用教程
  • 【三大特性】虚表 内存分布
  • AI应用讲座2025年4月笔记
  • 电镀废水资源化利用的工艺介绍
  • Centos 7.6安装redis-6.2.6
  • 解决新搭建的centos虚拟器,yum下载不了的问题
  • 蓝桥杯 2. 确定字符串是否是另一个的排列
  • LS2K0300龙芯开发板——智能车竞赛
  • 假设检验学习总结
  • 图像预处理-形态学变换
  • React-Native项目矢量图标库(react-native-vector-icons)以及如何使用
  • 强化学习机器人路径规划——Sparrow复现
  • adb常用的20个命令
  • splitchunk(如何将指定文件从主包拆分为单独的js文件)
  • 上海第三家“胖永辉”在浦东开业,设立了外贸产品专区
  • 合肥一季度GDP为3003.88亿元,同比增长6.6%
  • VR数字沉浸体验又添新节目,泰坦尼克号驶进文旅元宇宙
  • 珠海市香洲区原区长刘齐英落马,此前已被终止省人大代表资格
  • 为何不当教练转型高校管理岗?苏炳添曾吐露过真实的想法
  • 湖南省郴州市统战部部长黄峥嵘主动交代问题,接受审查调查