kubernetes mountPath vs hostPath


kubernetes mountPath vs hostPath



I am trying to deploy an app to kubernetes cluster and I want to store data in Persistent Volume. However, I am very confused about two parameters in the setup. Can someone explains what is the different between volumes.hostPath and volumeMounts.mountPath? I read some documentations online but it does not help me to understand.


volumeMounts:
- mountPath: /var/lib/mysql

volumes:
hostPath:
path: /k8s



If my setup is as above, is the volume going to be mounted at /k8s/var/lib/mysql?


/k8s/var/lib/mysql




1 Answer
1



The mount path is always the destination inside the Pod a volume gets mounted to.



I think the documentation is pretty clear on what hostPath does:



A hostPath volume mounts a file or directory from the host node’s
filesystem into your Pod. This is not something that most Pods will
need, but it offers a powerful escape hatch for some applications.



For example, some uses for a hostPath are:


- 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



So your example does not what you think it does. It would mount the node's /k8s directory into the Pod at /var/lib/mysql.


/k8s


/var/lib/mysql



This should be done only if you fully understand the implications!






By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Comments

Popular posts from this blog

paramiko-expect timeout is happening after executing the command

Export result set on Dbeaver to CSV

Opening a url is failing in Swift