k8s hostPath
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相关推荐
- 有赞 Flink 实时任务资源优化探索与实践
简介:目前有赞实时计算平台对于 Flink 任务资源优化探索已经走出第一步. 作者|沈磊 随着 Flink K8s 化以及实时集群迁移完成,有赞越来越多的 Flink 实时任务运行在 K8s 集群上, ...
- Spark on k8s: 通过hostPath设置SPARK_LOCAL_DIRS加速Shuffle
前言 spark.local.dir/SPARK_LOCAL_DIRS 用于Spark 在 Shuffle阶段临时文件及RDD持久化存储等,可以使用逗号分隔配置多个路径对应到不同的磁盘,Spark o ...
- k8s学习-持久化存储(Volumes、hostPath、emptyDir、PV、PVC)详解与实战
目录 概念 Volumes ConfigMap && Secret hostPath 模版 emptyDir 模版 PV 模版 PVC 模版 实战 volumes - hostPath ...
- 【Linux39-9】k8s存储之卷(volumes)、挂载不同类型的卷(emptyDir、hostpath、nfs)
文章目录 1. 卷简介 2. 卷类型 2.1 emptyDir 卷 2.2 hostpath 2.3 nfs 1. 卷简介 卷官方文档 Container 中的文件在磁盘上是临时存放的,这给容器中运行 ...
- @kubernetes(k8s)数据持久化Volume存储卷(emptyDir、hostPath、NFS、StorageClass)
文章目录 kubernetes(k8s)数据持久化Volume 一.数据持久化 1.Vlolume概述 2.数据卷的分类 3.常用的四种数据卷 4.Pod使用Volume步骤: 5. volume基本 ...
- k8s存储卷(empyDir;hostPath;nfs)
文章目录 一: emptyDir 存储卷 1.1 为什么使用存储卷 1.2 emptyDir 存储卷的作用 1.3 示例 二: hostPath卷 2.1 作用 2.2 示例 三: nfs共享存储 3 ...
- k8s mysql operator_将 MySQL 通过 presslabs/mysql-operator 部署到 k8s 内部
目前 openbayes 的几乎所有组件都部署在 k8s 内部,但 mysql 作为核心的数据存储节点对其要求都蛮高的,对于目前的业务场景,其要求主要包含以下几点: 需要持久化存储,一旦数据丢失问题非 ...
- k8S中的MySQL如何扩容_Kubernetes的etcd多节点扩容实战技巧
在<Kubernetes探秘-多master节点容错部署>中介绍了通过部署多个主节点来提高Kubernetes的容错能力.其中,最为关键是存储集群控制数据的etcd服务必须在多个副节点间实 ...
- 基于K8S构建企业级Jenkins CI/CD平台实战(二) 之 kubernetes-plugin 插件使用
1. 传统架构与K8S 架构的区别 (1). 传统Master/Slave架构,Master收到Job后,将请求转发到Slave节点处理.Slave节点数固定,Slave节点未能自动申缩容. (2). ...
最新文章
- 华为选拔人才的五个素质
- poj3617 贪心
- Grafana 6.4 正式发布!
- 虚拟机的性能监控与故障处理——jps,jstat,jinfo,jmap,jhat,jstack
- 30 个 OpenStack 经典面试问题和解答
- FTP协议的分析和扩展
- StreamWriter、StreamReader 写读文件的两种方法
- [c/c++]小议几个写缓冲区的函数
- 在c#使用Windows IOCP(完成端口)编程研究
- eclipse hibernate mysql_[s2sh]_3_hibernate与mysql还有eclipse的笔记
- python 拼音输入法_用Python从0开始实现一个中文拼音输入法
- ISIS协议的有关认识
- vue中使用萤石云播放视频
- python 作用域知识点整理
- 计算机网络自顶向下方法 第三章 运输层 3.4 可靠数据传输原理
- 浅谈机器学习-回归与分类的区别
- Android开发3年,4个月面试,终于拿到小米、京东、字节大厂offer
- 数字证书申请流程(双证)
- 【XR806开发板试用】TCP通信测试 Ping 命令测试
- fe_sendauth: no password supplied报错