Kubernetes存储之volume
容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题,首先,当容器崩溃时,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/docker
的hostPath
- 在容器中运行cAdvisor;使用
/dev/cgroups
的hostPath
除了所需的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相关推荐
- kubernetes存储系统介绍(Volume、PV、dynamic provisioning,阿里云服务器nfs创建pv,hostpath创建pv)
全栈工程师开发手册 (作者:栾鹏) 架构系列文章 K8S存储系统 K8S的存储系统从基础到高级又大致分为三个层次:普通Volume,Persistent Volume 和动态存储供应(dynamic ...
- Kubernetes 存储(Configmap、Secret、Volume、PV-PVC)
Kubernetes 存储 一.ConfigMap 1.ConfigMap描述信息 2.ConfigMap的创建 3.Pod中使用ConfigMap 4.ConfigMap的热更新 二.Secret ...
- 课时 21:Kubernetes 存储架构及插件使用(阚俊宝)
本文将主要分享以下三方面的内容: Kubernetes 存储体系架构: Flexvolume 介绍及使用: CSI 介绍及使用. Kubernetes 存储体系架构 引例: 在 Kubernetes ...
- 从零开始入门 K8s | Kubernetes 存储架构及插件使用
作者 | 阚俊宝 阿里巴巴高级技术专家 本文整理自<CNCF x Alibaba 云原生技术公开课>第 21 讲. 关注"阿里巴巴云原生"公众号,回复关键词**&quo ...
- 第7章:Kubernetes存储
Kubernetes存储 1.为什么需要存储卷? 容器部署过程中一般有以下三种数据: ·启动时需要的初始数据,可以是配置文件 ·启动过程中产生的临时数据,该临时数据需要多个容器间共享 ·启动过程中产生 ...
- 深入浅出聊聊Kubernetes存储(二):搞定持久化存储
回 顾 在本系列文章的上一篇中,我们讲到了PV,PVC,Storage Class以及Provisioner 简单回顾一下: PV在最一开始是设计成了一个需要管理员预先分配的存储块.引入Storage ...
- KUBERNETES存储之PERSISTENT VOLUMES简介
KUBERNETES存储之PERSISTENT VOLUMES简介 简介 管理存储和管理计算有着明显的不同.PersistentVolume子系统给用户和管理员提供了一套API,从而抽象出存储是如何提 ...
- kubernetes存储:local,openEBS,rook ceph
文章目录 Local 存储(PV) 概念 hostPath Local PV storageClassName指定延迟绑定动作 pv的删除流程 OpenEBS存储 控制平面 OpenEBS PV Pr ...
- Kubernetes存储之Heketi管理GlusterFS
Kubernetes存储之Heketi管理GlusterFS GlusterFS是一个可扩展,分布式文件系统,集成来自多台服务器上的磁盘存储资源到单一全局命名空间,以提供共享文件存储特点:可以扩展到几 ...
最新文章
- Docker入门之 - 如何安装Docker CE
- 乌班图linux分辨率不能调,ubuntu不能设置高分辨率问题的解决方法,
- iPhone开发中的一些小技巧
- 查看linux是几位的操作系统
- 18.12.04 有品面试小记
- Basic Calculator
- Redis 实践笔记1---基础知识
- 这所双非高校硕士生一作发Science!系学校上半年第13篇CNS!
- centos7下docker启动失败解决
- 嵌入网站的挖矿代码——Cryptoloot
- 求求了!让 Python 的热搜消失吧!!
- 大橡塑属于机器人板块吗_又一家制造企业逃离,在东莞怒砸10亿建总部,机器人产业也顶不住深圳的高成本了?...
- HDU 3551 Hard Problem
- Mac OS X 通过命令行修改ip地址
- sdk环境变量配置不成功
- PHP将swf转为gif,swf转gif 在线转换
- 【 网工在线画拓扑,赶紧保存收藏!】
- 老师傅传授,数控车床对刀步骤
- richTextBox相关操作
- 拉勾教育管理系统(后端)
热门文章
- xml配置linux启动脚本,linux中利用Shell脚本实现自动安装部署weblogic服务
- 数据中心节水管理办法(范例)
- 联想按f2进不了bios设置_华硕笔记本win10装win7bios设置方法分享
- Excel:Excel使用技巧经验总结之(利用Excel自带功能统计各个字段不同类别及其个数并进行图表可视化+非编程实现)图文教程之详细攻略
- 成功解决ImportError: Could not find 'msvcp140.dll'. TensorFlow requires that this DLL be installed in a
- 使用LiveGBS将GB28181流转成RTSP流上大屏
- Spring Boot详细学习地址转载
- LeetCode:汇总区间【228】
- DataSet导出Excel,比以往的方法导出的Excel外观更加好看
- 3、构建bass服务及model