我正在尝试将应用程序部署到kubernetes集群,并且要将数据存储在 Persistent Volume 中。但是,我对设置中的两个参数感到非常困惑。有人可以解释 volumes.hostPath 和 volumeMounts.mountPath 有什么区别吗?我在线阅读了一些文档,但并不能帮助我理解。
volumeMounts:
- mountPath: /var/lib/mysql
volumes:
hostPath:
path: /k8s
如果我的设置如上所述,该卷是否要安装在/k8s/var/lib/mysql
上?
答案 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
)