容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题,首先,当容器崩溃时,kubelet会重启它,但是容器的文件将丢失—容器以干净的状态(镜像最初的状态)重新启动,其次,在pod 中同时运行多个容器是,这些容器之间通常需要共享文件,Kubernetes中的volume 抽象就很好的解决了这些问题。

背景

Kubernetes中的卷有明确的寿命–与封装它的Pod相同,所以,卷的生命比Pod中所有容器都长,当这个容器重启时数据任然得以保存,当然,当Pod不存在时,卷也将不复存在,也许更重要的是,Kubernetes支持多种类型的卷,Pod可以同时使用任意数量的卷。

卷的类型

Kubernetes支持一下类型的卷:

  • awsElasticBlockStore azureDisk azureFile cephfs csi downwardAPI enptyDir
  • fc flocker gcePersistenDisk gitRepo glusterfs hostPath iscsi local nfs
  • persistenVolumeClaim prejected portworxVolume quobyte rbd scaleIO secret
  • storageos vsphereVolume

empthDir

  • 暂存空间,例如用于基于磁盘的合并排序
  • 用作长时间计算崩溃恢复时的检查点
  • Web服务器容器提供数据时,保存内容管理器容器提取的文件
apiVersion: v1
kind: Pod
metadata:name: test-pd
spec:containers:- image: k8s.gcr.io/test-webservername: test-containervolumeMounts:- mountPath: /cachename: cache-volume- name: liveness-exec-containerimage: busyboximagePullPolicy: IfNotPresentcommand: ["/bin/sh","-c","sleep 6000s"]voluemMounts:- mountPath: /testname: cache-volumevolumes:- name: cahce-volumeemptyDir: {}

hostPath

hostPath 卷将主节点的文件系统中的文件或目录挂载到集群中

hostPath 的用途如下:

  • 运行需要访问的Docker内部的容器;使用/var/lib/dockerhostPath
  • 在容器中运行cAdvisor;使用/dev/cgroupshostPath

除了所需的path 属性外,用户还可以为hostPaht 卷指定type

行为
空字符串(默认)用于向后兼容,这意味着在挂载hostPath卷之前不会执行任何检查
DirectoryOrCreate 如果在给定的路径上没有任何东西存在,那么将根据需要在那里创建一个空目录,权限设置为0755,与Kubelet具有相同的组合所有权
Directory 给定的路径下必须存在目录
FileOrCreate 如果在给定的路径上没有任何东西存在,那么会根据需要创建一个空文件,权限设置为0644,与Kubelet具有相同的组合所有权
File 在给定的路径下必须存在文件
Socket 在给定的路径下必须存在UNIX套接字
CharDevice 在给定的路径下必须存在字符设备
BlockDevice 在给定的路径下必须存在块设备

使用这种类型时注意,因为:

  • 由于每个节点上的文件都不同,具有相同配置(例如从podTemplate创建的)的pod在不同节点上的行为可能会有所不同
  • 当Kubernetes按照计划添加资源感知调度时,将无法考虑hostPath使用的资源
  • 在底层主机上创建的文件或目录只能由root写入,你需要在特权容器中以root身份运行进程,或修改主机上的文件权限以便写入hostPath卷
apiVersion: v1
kind: Pod
metadata:name: test-pd
spec:containers:- image: k8s.gcr.io/test-webservername: test-containervolumeMounts:- mountPath: /test-pdname: test-volumevolumes:- name: cahce-volumehostPaht:# directory location on hostpath: /data# this field is optionaltype: Directory

Kubernetes存储之volume相关推荐

  1. kubernetes存储系统介绍(Volume、PV、dynamic provisioning,阿里云服务器nfs创建pv,hostpath创建pv)

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 K8S存储系统 K8S的存储系统从基础到高级又大致分为三个层次:普通Volume,Persistent Volume 和动态存储供应(dynamic ...

  2. Kubernetes 存储(Configmap、Secret、Volume、PV-PVC)

    Kubernetes 存储 一.ConfigMap 1.ConfigMap描述信息 2.ConfigMap的创建 3.Pod中使用ConfigMap 4.ConfigMap的热更新 二.Secret ...

  3. 课时 21:Kubernetes 存储架构及插件使用(阚俊宝)

    本文将主要分享以下三方面的内容: Kubernetes 存储体系架构: Flexvolume 介绍及使用: CSI 介绍及使用. Kubernetes 存储体系架构 引例: 在 Kubernetes ...

  4. 从零开始入门 K8s | Kubernetes 存储架构及插件使用

    作者 | 阚俊宝 阿里巴巴高级技术专家 本文整理自<CNCF x Alibaba 云原生技术公开课>第 21 讲. 关注"阿里巴巴云原生"公众号,回复关键词**&quo ...

  5. 第7章:Kubernetes存储

    Kubernetes存储 1.为什么需要存储卷? 容器部署过程中一般有以下三种数据: ·启动时需要的初始数据,可以是配置文件 ·启动过程中产生的临时数据,该临时数据需要多个容器间共享 ·启动过程中产生 ...

  6. 深入浅出聊聊Kubernetes存储(二):搞定持久化存储

    回 顾 在本系列文章的上一篇中,我们讲到了PV,PVC,Storage Class以及Provisioner 简单回顾一下: PV在最一开始是设计成了一个需要管理员预先分配的存储块.引入Storage ...

  7. KUBERNETES存储之PERSISTENT VOLUMES简介

    KUBERNETES存储之PERSISTENT VOLUMES简介 简介 管理存储和管理计算有着明显的不同.PersistentVolume子系统给用户和管理员提供了一套API,从而抽象出存储是如何提 ...

  8. kubernetes存储:local,openEBS,rook ceph

    文章目录 Local 存储(PV) 概念 hostPath Local PV storageClassName指定延迟绑定动作 pv的删除流程 OpenEBS存储 控制平面 OpenEBS PV Pr ...

  9. Kubernetes存储之Heketi管理GlusterFS

    Kubernetes存储之Heketi管理GlusterFS GlusterFS是一个可扩展,分布式文件系统,集成来自多台服务器上的磁盘存储资源到单一全局命名空间,以提供共享文件存储特点:可以扩展到几 ...

最新文章

  1. Docker入门之 - 如何安装Docker CE
  2. 乌班图linux分辨率不能调,ubuntu不能设置高分辨率问题的解决方法,
  3. iPhone开发中的一些小技巧
  4. 查看linux是几位的操作系统
  5. 18.12.04 有品面试小记
  6. Basic Calculator
  7. Redis 实践笔记1---基础知识
  8. 这所双非高校硕士生一作发Science!系学校上半年第13篇CNS!
  9. centos7下docker启动失败解决
  10. 嵌入网站的挖矿代码——Cryptoloot
  11. 求求了!让 Python 的热搜消失吧!!
  12. 大橡塑属于机器人板块吗_又一家制造企业逃离,在东莞怒砸10亿建总部,机器人产业也顶不住深圳的高成本了?...
  13. HDU 3551 Hard Problem
  14. Mac OS X 通过命令行修改ip地址
  15. sdk环境变量配置不成功
  16. PHP将swf转为gif,swf转gif 在线转换
  17. 【 网工在线画拓扑,赶紧保存收藏!】
  18. 老师傅传授,数控车床对刀步骤
  19. richTextBox相关操作
  20. 拉勾教育管理系统(后端)

热门文章

  1. xml配置linux启动脚本,linux中利用Shell脚本实现自动安装部署weblogic服务
  2. 数据中心节水管理办法(范例)
  3. 联想按f2进不了bios设置_华硕笔记本win10装win7bios设置方法分享
  4. Excel:Excel使用技巧经验总结之(利用Excel自带功能统计各个字段不同类别及其个数并进行图表可视化+非编程实现)图文教程之详细攻略
  5. 成功解决ImportError: Could not find 'msvcp140.dll'. TensorFlow requires that this DLL be installed in a
  6. 使用LiveGBS将GB28181流转成RTSP流上大屏
  7. Spring Boot详细学习地址转载
  8. LeetCode:汇总区间【228】
  9. DataSet导出Excel,比以往的方法导出的Excel外观更加好看
  10. 3、构建bass服务及model