hostPath
hostPath为在Pod上挂载宿主机上的文件或目录,它通常可以用于以下几方面:
容器应用程序生成的日志文件需要永久保存时,可以使用宿主机的高速文件系统进行存储。
需要访问宿主机上Docker引擎内部数据结构的容器应用时,可以通过定义hostPath为宿主机/var/lib/docker目录,使容器内部应用可以直接访问Docker的文件系统。
示例
以下为使用 hostPath 卷的示例,实现将主机的/etc/timezone文件挂载到Pod的/etc/timezone:
在使用这种类型的Volume时,需要注意以下几点:
在不同的Node上具有相同配置的Pod,可能会因为宿主机上的目录和文件不同而导致对Volume上目录和文件的访问结果不一致。
如果使用了资源配额管理,则Kubernetes无法将hostPath在宿主机上使用的资源纳入管理。
在配置HostPath时,有一个type的参数,用于表达不同的挂载类型,HostPath卷常用的type(类型)如下:
type为空字符串:默认选项,意味着挂载hostPath卷之前不会执行任何检查。
DirectoryOrCreate:如果给定的path不存在任何东西,那么将根据需要创建一个权限为0755的空目录,和Kubelet具有相同的组和权限。
Directory:目录必须存在于给定的路径下。
FileOrCreate:如果给定的路径不存在任何东西,则会根据需要创建一个空文件,权限设置为0644,和Kubelet具有相同的组和所有权。
File:文件,必须存在于给定路径中。
Socket:UNIX套接字,必须存在于给定路径中。
CharDevice:字符设备,必须存在于给定路径中。
BlockDevice:块设备,必须存在于给定路径中。
最后更新于
这有帮助吗?