赞
踩
hostPath
卷能将主机节点文件系统上的文件或目录挂载到您的 Pod 中。 虽然这不是大多数 Pod 需要的,但是它为一些应用程序提供了强大的逃生舱。
例如,hostPath
的一些用法有:
hostPath
挂载 /var/lib/docker
路径。hostPath
方式挂载 /sys
。hostPath
在运行 Pod 之前是否应该存在,是否应该创建以及应该以什么方式存在。除了必需的 path
属性之外,用户可以选择性地为 hostPath
卷指定 type
。
支持的 type
值如下:
取值 | 行为 |
---|---|
空字符串(默认)用于向后兼容,这意味着在安装 hostPath 卷之前不会执行任何检查。 | |
DirectoryOrCreate | 如果在给定路径上什么都不存在,那么将根据需要创建空目录,权限设置为 0755,具有与 Kubelet 相同的组和所有权。 |
Directory | 在给定路径上必须存在的目录。 |
FileOrCreate | 如果在给定路径上什么都不存在,那么将在那里根据需要创建空文件,权限设置为 0644,具有与 Kubelet 相同的组和所有权。 |
File | 在给定路径上必须存在的文件。 |
Socket | 在给定路径上必须存在的 UNIX 套接字。 |
CharDevice | 在给定路径上必须存在的字符设备。 |
BlockDevice | 在给定路径上必须存在的块设备。 |
当使用这种类型的卷时要小心,因为:
hostPath
使用的资源。hostPath
卷。Pod 示例
test-pd.yaml
- apiVersion: v1
- kind: Pod
- metadata:
- name: test-pd
- spec:
- containers:
- - image: nginx
- name: test-container
- volumeMounts:
- # 在容器中的路径 node节点上的内容被关联到 pod containr的 /test-pd路径下 exec进入pod容器的路径内可以看到节点上的内容
- - mountPath: /test-pd
- name: test-volume
- volumes:
- - name: test-volume
- hostPath:
- # 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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。