hostPath类型的卷挂载
卷类型之hostPath
hostPath类型的卷可以把宿主机节点上的文件或文件夹挂载到pod中
先来看看hostPath类型的卷如何配置:
- apiVersion: v1
- kind: Pod
- metadata:
- name: test-pd
- spec:
- volumes:
- - name: test-volume
- hostPath:
- path: /data
- type: Directory
- containers:
- - image: k8s.gcr.io/test-webserver
- name: test-container
- volumeMounts:
- - name: test-volume
- mountPath: /test-pd
- mountPropagation: None
- readOnly: true
- subPath: test.txt
- subPathExpr:
这里针对每一个配置项逐一解释:
sepc.volumes: 配置宿主机节点上的挂载目录
配置项名称 | 是否必须 | 说明 |
---|---|---|
name | 必须 | 卷的名称,在pod内必须唯一 |
hostPath.path | 必须 | 宿主机上的目录路径,如果是符号链接,它将根据符号链接追踪到实际路径 |
hostPath.type | 可选 | hostPath卷的类型,默认为“” |
hostPath.type的枚举值有:
取值 | 说明 |
DirectoryOrCreate | 如果给定路径不存在,将根据需要在那里创建一个空目录,权限设置为755,与Kubelet具有相同的组和所有权。 |
Directory | 给定的目录路径必须存在 |
FileOrCreate | 如果给定路径不存在,将根据需要在那里创建一个空文件,权限设置为644,与Kubelet具有相同的组和所有权。 |
File | 给定路径上必须存在对应文件 |
Socket | 给定路径上必须存在一个UNIX socket |
CharDevice | 给定路径上必须存在字符设备 |
BlockDevice | 给定路径上必须存在块设备 |
- 使用type字段时需要注意:
- 由于节点上的文件不同,具有相同配置(如从podTemplate创建的)的Pods在不同节点上的行为可能不同
- 当Kubernetes按照计划添加资源感知调度(?)时,它将不会使用hostPath声明的资源
- 在主机上创建的文件或目录只能由根用户写。你需要在一个有特权的容器中以root身份运行进程,或者修改主机上的文件权限,以便能够写入hostPath卷
containers.volumeMounts: 配置挂载到pod里的路径
配置项名称 | 是否必须 | 说明 |
name | 必须 | 此处卷的名称必须和spec.volumes下的某个卷的名称一致 |
mountPath | 必须 | 挂载到容器里的路径,不能包含英文冒号‘:’ |
mountPropagation | 可选 | 该参数决定如何将挂载从主机传播到容器,反之亦然。默认为None |
readOnly | 可选 | 是否只读,默认为可读写 |
subPath | 可选 | 将spec.volumes中的子目录挂载到容器中不同的位置,默认为“”,也就是挂载到spec.volumes定义的根目录 |
subPathExpr | 可选 | 与subPath类似,但是路径中可以支持从环境变量取值:${VAR_NAME},默认为“”,也就是spec.volumes定义的根目录。和subPath只能有一个出现 |
mountPropagation的取值有:
None:默认值,卷在容器中以及宿主机上的后续挂载相互隔离
HostToContainer:任何在宿主机上创建的卷挂载在容器中都是可见的
Bidirectional:任何在容器中创建的卷挂载都会传播到宿主机,然后传播到所有使用此挂载的pod中的容器里
hostPath类型的卷挂载的更多相关文章
- docker卷挂载与容器内外互相拷贝数据
一.宿主机与容器的挂载 docker可以支持把一个宿主机上的目录挂载到镜像里.命令如下: docker run -it -v /mydownload:/download nginx:v1 /bin/b ...
- docker数据卷挂载
docker数据卷挂载笔记 我们的服务运行时必不可少的会产生一些日志,或是我们需要把容器内的数据进行备份,甚至多个容器之间进行数据共享,这必然涉及容器的数据管理操作. 容器中管理数据主要有两种方式: ...
- 阿里云 ECS 逻辑卷挂载数据盘
查看磁盘信息: [root@ixx~]# fdisk -l Disk /dev/xvda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track ...
- Windows API 第20篇 SetVolumeMountPoint 设置卷挂载点参数错误
函数原型:BOOL SetVolumeMountPoint( IN LPCTSTR lpszVo ...
- Docker 安装mysql容器数据卷挂载到宿主机
环境 Centos:7 Docker: 17.05-ce Mysql: 5.7 1. Mysql外部数据和配置文件路径 msyql配置文件路径:/etc/mysql mysql数据卷路径:/var/l ...
- docker 数据卷挂载总结
原文
- k8s volume存储卷(四)
介绍 volume存储卷是Pod中能够被多个容器访问的共享目录,kubernetes的volume概念,用途和目的与docker的volume比较类似,但两者不能等价,首先,kubernetes中的v ...
- k8s volume存储卷
k8s volume存储卷 介绍 volume存储卷是Pod中能够被多个容器访问的共享目录,kubernetes的volume概念,用途和目的与docker的volume比较类似,但两者不能等价, ...
- 容器编排系统K8s之Volume的基础使用
前文我们聊到了k8s上的ingress资源相关话题,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/14167581.html:今天们来聊一下k8s上volum ...
- kubernets之statefulset资源
一 了解Statefulset 1.1 对比statefulset与RS以及RC的区别以及相同点 Statefulset是有状态的,而RC以及RS等是没有状态的 Statefulset是有序的,拥 ...
随机推荐
- Vue3+TypeScript 项目中,配置 ESLint 和 Prettier
接上篇:从0搭建vite-vue3-ts项目框架:配置less+svg+pinia+vant+axios 文档同步项目gitee:https://gitee.com/lixin_ajax/vue3-v ...
- 问题记录:VMware vSphere vCenter 7.0 上传文件失败
问题记录:VMware vSphere vCenter 7.0 上传文件失败 环境说明: VC版本:VMware vSphere vCenter 7.0 ESXi版本:VMware vSphere E ...
- Unity之屏幕自适应
Unity之屏幕自适应 哪个小伙伴能告诉我为什么CSDN我上传资源之后,下载费用是5积分啊!?怎么改为0呢,小黑苦恼啊!!!!!!! 一.前言 先言归正传吧,今天小黑给大家带来一个非常不错的分享--屏 ...
- ClickHouse(12)ClickHouse合并树MergeTree家族表引擎之AggregatingMergeTree详细解析
目录 建表语法 查询和插入数据 数据处理逻辑 ClickHouse相关资料分享 AggregatingMergeTree引擎继承自 MergeTree,并改变了数据片段的合并逻辑.ClickHouse ...
- 12月15日内容总结——ORM执行原生SQL语句、双下划线数据查询、ORM外键字段的创建、外键字段的相关操作、ORM跨表查询、基于对象的跨表查询、基于双下划线的跨表查询、进阶查询操作
目录 一.ORM执行SQL语句 二.神奇的双下划线查询 三.ORM外键字段的创建 复习MySQL外键关系 外键字段的创建 1.创建基础表(书籍表.出版社表.作者表.作者详情) 2.确定外键关系 3.O ...
- 11月9日内容总结——单例模式的多种实现方式、pickle序列号模块和选课系统
目录 一.单例模式实现的多种方式 方式一:使用类 方法二:使用metaclass方式(自定义元类) 方法三:自定义双下new 方法四:基于模块的单例模式 二.pickle序列化模块 优势: 缺陷: 方 ...
- JDK、tomcat、MySQL5.7安装教程
JDK自定义安装 一.安装JDK.JRE 1.在E盘下建立一个java文件夹,在java文件夹下分别建立jdk和jre文件夹 2.双击安装包 3.点击下一步,更改安装路径,安装到第一步创建好的jdk文 ...
- 1.2.HBuilder软件与uniapp文件介绍
uni-app官网地址 下载HBuilder 教程
- Vue的指令(内容渲染、属性绑定、javaScript表达式、事件绑定、事务对象、双向绑定、逻辑<if-show-for>)
VUE指令 内容渲染指令 v-text v-html v-text="message" v-text会覆盖默认的值 {{message+"!"}}插值表达式 差 ...
- redis(1)NoSQL数据库简介
1.1 技术发展 redis是用来解决性能问题的数据库 技术的分类: 解决功能性问题:Java.Jsp.RDBMS.Tomcat.HTML.Linux.JDBC.SVN 解决扩展性问题:Struts. ...