卷类型之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中的容器里

最新文章

  1. 【ZJOI2007】棋盘制作 BZOJ1057
  2. JFinal - scheduler 插件做定时任务
  3. 纯js开发防win7日历控件
  4. OSGI入门笔记
  5. Python基础1:if条件判断 break/continue语句
  6. Mac系统下使用VirtualBox虚拟机安装win7--第五步 共享文件夹设置
  7. 2015年第5本(英文第4本):Death on the Nile尼罗河上的惨案
  8. Binary Indexed Tree 2D 分类: ACM TYPE 2014-09-01 08:40 95人阅读 评论(0) 收藏
  9. js中json的转换
  10. asp于Server.MapPath用法
  11. ios开发之路十一(ARC forbids explicit message send of 'autorelease'错误)
  12. 页面开发辅助类—HtmlHelper初步了解
  13. Kubernetes运维生态-Heapster分析
  14. kubernetes之ingress及ingress controller
  15. Win10系统下安装Gradle-3.5
  16. hashmap源码研究
  17. Beyond-Compare 4 -linux 破解
  18. [Java] 例外處裡 try/catch & throws
  19. Docker系列之Docker容器(读书笔记)
  20. 【python 字典、json】python字典和Json的相互转换

热门文章

  1. python之路22 hashlib、subprocess、logging模块
  2. [LeetCode]杨辉三角 II
  3. [Leetcode]寻找峰值
  4. [阿里云]I+的一些探索
  5. 在Mac OS上将Node.js连接到XAMPP MySQL服务器一直报错error connecting: Error: connect ECONNREFUSED
  6. TCP/IP RTT算法比较
  7. TS不能将类型“any[]”分配给类型“never[]”
  8. 职场IT老手教你3步教你玩转可视化大屏设计,让领导眼前一亮!
  9. Spring6 DI 依赖注入--Bean属性赋值
  10. typora永久插入图片