hostPath

hostPath 卷能将主机节点文件系统上的文件或目录挂载到您的 Pod 中。 虽然这不是大多数 Pod 需要的,但是它为一些应用程序提供了强大的逃生舱。

例如,hostPath 的一些用法有:

  • 运行一个需要访问 Docker 引擎内部机制的容器;请使用 hostPath 挂载 /var/lib/docker 路径。
  • 在容器中运行 cAdvisor 时,以 hostPath 方式挂载 /sys
  • 允许 Pod 指定给定的 hostPath 在运行 Pod 之前是否应该存在,是否应该创建以及应该以什么方式存在。

除了必需的 path 属性之外,用户可以选择性地为 hostPath 卷指定 type

支持的 type 值如下:

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

当使用这种类型的卷时要小心,因为:

  • 具有相同配置(例如从 podTemplate 创建)的多个 Pod 会由于节点上文件的不同而在不同节点上有不同的行为。
  • 当 Kubernetes 按照计划添加资源感知的调度时,这类调度机制将无法考虑由 hostPath 使用的资源。
  • 基础主机上创建的文件或目录只能由 root 用户写入。您需要在 特权容器 中以 root 身份运行进程,或者修改主机上的文件权限以便容器能够写入 hostPath 卷。

Pod 示例

test-pd.yaml

apiVersion: v1
kind: Pod
metadata:name: test-pd
spec:containers:- image: nginxname: test-containervolumeMounts:# 在容器中的路径    node节点上的内容被关联到 pod containr的 /test-pd路径下 exec进入pod容器的路径内可以看到节点上的内容- mountPath: /test-pdname: test-volumevolumes:- name: test-volumehostPath:# directory location on host  绑定的节点的文件路径path: /data# this field is optional  此路径类型为必须存在type: Directory

注意:

创建pod

[root@192 ~]# kubectl create -f test-pd.yaml
[root@192 ~]# kubectl get pod -o wide
NAME       READY   STATUS    RESTARTS   AGE     IP            NODE    NOMINATED NODE   READINESS GATES
test-pd    1/1     Running   0          65s     10.244.0.25   node1   <none>           <none>
[root@192 ~]# kubectl exec -it  test-pd /bin/sh
# ls
bin   dev          docker-entrypoint.sh  home  lib64  mnt  proc  run   srv  test-pd  usr
boot  docker-entrypoint.d  etc           lib   media  opt  root  sbin  sys  tmp      var
# cd test-pd      #进入到上边yaml文件中的目录可以见到目录中有很多文件
# ls
a.txt  aaa  b.txt  file1  log  my_app01  my_app01.tar.gz  nginx  test  test02

在node1节点上看/data目录中的文件

[root@node1 /]# cd data/
[root@node1 data]# ls
aaa  a.txt  b.txt  file1  log  my_app01  my_app01.tar.gz  nginx  test  test02
[root@node1 data]# pwd
/data

可以看到,pod容器中 指定的test-pd 路径下的内容与 /data路径下的内容一致

在容器中添加一个文件,观察对应的node节点是否有了此文件‘

# echo "ccc"^[[C>c.txt
# ls
a.txt  aaa  b.txt  c.txt  file1  log  my_app01  my_app01.tar.gz  nginx  test  test02
[root@node1 data]# ls
aaa  a.txt  b.txt  c.txt  file1  log  my_app01  my_app01.tar.gz  nginx  test  test02

k8s hostPath相关推荐

  1. 有赞 Flink 实时任务资源优化探索与实践

    简介:目前有赞实时计算平台对于 Flink 任务资源优化探索已经走出第一步. 作者|沈磊 随着 Flink K8s 化以及实时集群迁移完成,有赞越来越多的 Flink 实时任务运行在 K8s 集群上, ...

  2. Spark on k8s: 通过hostPath设置SPARK_LOCAL_DIRS加速Shuffle

    前言 spark.local.dir/SPARK_LOCAL_DIRS 用于Spark 在 Shuffle阶段临时文件及RDD持久化存储等,可以使用逗号分隔配置多个路径对应到不同的磁盘,Spark o ...

  3. k8s学习-持久化存储(Volumes、hostPath、emptyDir、PV、PVC)详解与实战

    目录 概念 Volumes ConfigMap && Secret hostPath 模版 emptyDir 模版 PV 模版 PVC 模版 实战 volumes - hostPath ...

  4. 【Linux39-9】k8s存储之卷(volumes)、挂载不同类型的卷(emptyDir、hostpath、nfs)

    文章目录 1. 卷简介 2. 卷类型 2.1 emptyDir 卷 2.2 hostpath 2.3 nfs 1. 卷简介 卷官方文档 Container 中的文件在磁盘上是临时存放的,这给容器中运行 ...

  5. @kubernetes(k8s)数据持久化Volume存储卷(emptyDir、hostPath、NFS、StorageClass)

    文章目录 kubernetes(k8s)数据持久化Volume 一.数据持久化 1.Vlolume概述 2.数据卷的分类 3.常用的四种数据卷 4.Pod使用Volume步骤: 5. volume基本 ...

  6. k8s存储卷(empyDir;hostPath;nfs)

    文章目录 一: emptyDir 存储卷 1.1 为什么使用存储卷 1.2 emptyDir 存储卷的作用 1.3 示例 二: hostPath卷 2.1 作用 2.2 示例 三: nfs共享存储 3 ...

  7. k8s mysql operator_将 MySQL 通过 presslabs/mysql-operator 部署到 k8s 内部

    目前 openbayes 的几乎所有组件都部署在 k8s 内部,但 mysql 作为核心的数据存储节点对其要求都蛮高的,对于目前的业务场景,其要求主要包含以下几点: 需要持久化存储,一旦数据丢失问题非 ...

  8. k8S中的MySQL如何扩容_Kubernetes的etcd多节点扩容实战技巧

    在<Kubernetes探秘-多master节点容错部署>中介绍了通过部署多个主节点来提高Kubernetes的容错能力.其中,最为关键是存储集群控制数据的etcd服务必须在多个副节点间实 ...

  9. 基于K8S构建企业级Jenkins CI/CD平台实战(二) 之 kubernetes-plugin 插件使用

    1. 传统架构与K8S 架构的区别 (1). 传统Master/Slave架构,Master收到Job后,将请求转发到Slave节点处理.Slave节点数固定,Slave节点未能自动申缩容. (2). ...

最新文章

  1. 华为选拔人才的五个素质
  2. poj3617 贪心
  3. Grafana 6.4 正式发布!
  4. 虚拟机的性能监控与故障处理——jps,jstat,jinfo,jmap,jhat,jstack
  5. 30 个 OpenStack 经典面试问题和解答
  6. FTP协议的分析和扩展
  7. StreamWriter、StreamReader 写读文件的两种方法
  8. [c/c++]小议几个写缓冲区的函数
  9. 在c#使用Windows IOCP(完成端口)编程研究
  10. eclipse hibernate mysql_[s2sh]_3_hibernate与mysql还有eclipse的笔记
  11. python 拼音输入法_用Python从0开始实现一个中文拼音输入法
  12. ISIS协议的有关认识
  13. vue中使用萤石云播放视频
  14. python 作用域知识点整理
  15. 计算机网络自顶向下方法 第三章 运输层 3.4 可靠数据传输原理
  16. 浅谈机器学习-回归与分类的区别
  17. Android开发3年,4个月面试,终于拿到小米、京东、字节大厂offer
  18. 数字证书申请流程(双证)
  19. 【XR806开发板试用】TCP通信测试 Ping 命令测试
  20. fe_sendauth: no password supplied报错

热门文章

  1. 海外智慧(灯杆)路灯市场发展状况如何?
  2. RL2048DKQ基于光谱探测的高性能线阵CCD介绍
  3. Unity的URP下使用SRPBatcher
  4. Python 面试:“一行代码实现 xx”类题目(带答案)
  5. 基于Matlab的激光雷达机场地面监控仿真(附源码)
  6. casual discovery Toolbox使用(R语言做因果分析)
  7. 干货|常用的电子元器件基础知识介绍
  8. Blender英文如何改为中文界面
  9. 出力CSV文件将逗号转义
  10. GB28181融合视频会议的实现