kubernetes mountPath与hostPath

时间:2018-06-29 18:18:00

标签: kubernetes

我正在尝试将应用程序部署到kubernetes集群,并且要将数据存储在 Persistent Volume 中。但是,我对设置中的两个参数感到非常困惑。有人可以解释 volumes.hostPath volumeMounts.mountPath 有什么区别吗?我在线阅读了一些文档,但并不能帮助我理解。

volumeMounts:
  - mountPath: /var/lib/mysql

volumes:
  hostPath:
    path: /k8s

如果我的设置如上所述,该卷是否要安装在/k8s/var/lib/mysql上?

2 个答案:

答案 0 :(得分:6)

安装路径始终是将卷安装到的Pod内部的目标。

我认为有关hostPath功能的文档非常清楚:

  

hostPath卷从主机节点的主机上挂载文件或目录   文件系统到您的Pod中。大多数豆荚都不会这样做   需要,但它为某些应用程序提供了强大的逃生舱口。

     

例如,hostPath的一些用途是:

- running a Container that needs access to Docker internals; use a hostPath of /var/lib/docker
- running cAdvisor in a Container; use a hostPath of /sys
- allowing a Pod to specify whether a given hostPath should exist prior to the Pod running, whether it should be created, and what it should exist as

因此您的示例与您认为的不一样。它将把节点的/k8s目录安装到/var/lib/mysql的Pod中。

只有当您完全理解其含义时,才应该这样做!

答案 1 :(得分:1)

主机路径:您节点中的目录。
安装路径:您的广告连播中的目录。

您的设置会将节点的目录(/k8s)安装到pod的目录(位于/var/lib/mysql