【问题标题】:What's differences between PV and manual mount?PV和手动安装有什么区别?
【发布时间】:2022-01-26 07:04:01
【问题描述】:
我有一个外部 NFS 服务,有两种挂载方式。
使用光伏
volumes:
- name: nfs-volume-0
nfs:
path: /data/mypath
server: 10.123.3.124
在容器中使用挂载
mount -t nfs 10.123.3.124:/data/mypath /data/mypath
它们之间有什么区别?
【问题讨论】:
标签:
docker
kubernetes
mount
nfs
【解决方案1】:
通常可以使用volumes:,但通常不能在容器中运行mount(8)。通常禁止容器挂载额外的文件系统(即使它以 root 身份运行,通过 Linux 功能),除非您能够规避这一点,否则 mount(8) 调用将无法正常工作。在 Kubernetes 和普通 Docker 中都是如此。
再上一层,NFS PersistentVolumeClaim 可以是与您的应用程序隔离的几层。如果你能够在容器内调用mount(8),它就必须知道NFS服务器的地址和路径,这可能会使其难以在其他环境中运行(pre-生产、QA 和开发人员环境可能有不同的设置)。 PVC 方法让应用程序假设某些东西安装在/data/mypath 上,并且部署配置指定实际存在的内容。这也可以让您直接将该设置更改为 NFS 以外的其他设置(也许在开发环境中您可以使用本地文件;也许您认为本地卷更快、更可靠)。