Kubernetes - 我们可以为两个集群节点使用相同的挂载卷(文件共享)吗 - Windows 和 Linux?
Kubernetes - can we use the same mounted volume (file share) for both Cluster Nodes - Windows and Linux?
我最初只有 Linux 节点上的应用程序并为其使用了装载的卷(Azure 存储帐户和文件共享),并且一切正常。
从 YAML 中提取的定义:
volumeMounts:
- name: test-volume
mountPath: /opt/arena/
volumes:
- name: test-volume
azureFile:
secretName: test-secret
shareName: test-share
现在,对于我的第二个应用程序(同一个应用程序,但部署在 Windows 容器上),我需要使用相同的存储帐户和文件共享。
只有我会挂载windows路径。
....
volumeMounts:
- name: test-volume
mountPath: "C:\arena"
........
volumes:
- name: test-volume
azureFile:
secretName: test-secret
shareName: test-share
当为 linux 安装时,我立即得到我的日志目录和文件“ads.log”
log
|__ads.log
但是 Windows 容器中也存在相同的目录“log”和相同的文件“ads.log”。
我想在 Azure 上使用相同的存储帐户和文件共享,以免增加成本。
但是我如何才能实现 Linux 和 Windows 容器都安装到卷中,而且同时区分哪个日志来自哪个容器???
另外一个问题,因为我还没有进行 windows 安装:mountPath: "C:\arena"
是定义它的正确方法吗?因为在网络上的一些例子中,一些插件被提到 windows 等等
谢谢
首先,windows的挂载格式是正确的。所以你不必担心。其次,为了区分同一文件共享中Linux容器和windows容器的日志文件夹,您可以挂载文件共享的子文件夹。
文件共享:
aksshare
│── linux
│── windows
截图:
然后像这样挂载文件共享:
.....
volumeMounts:
- name: azure
mountPath: /mnt/azure
volumes:
- name: azure
azureFile:
shareName: aksshare/linux
secretName: azure-secret
这种方式会将文件共享的两个子文件夹分别挂载到不同的容器中,互不影响。
我最初只有 Linux 节点上的应用程序并为其使用了装载的卷(Azure 存储帐户和文件共享),并且一切正常。
从 YAML 中提取的定义:
volumeMounts:
- name: test-volume
mountPath: /opt/arena/
volumes:
- name: test-volume
azureFile:
secretName: test-secret
shareName: test-share
现在,对于我的第二个应用程序(同一个应用程序,但部署在 Windows 容器上),我需要使用相同的存储帐户和文件共享。 只有我会挂载windows路径。
....
volumeMounts:
- name: test-volume
mountPath: "C:\arena"
........
volumes:
- name: test-volume
azureFile:
secretName: test-secret
shareName: test-share
当为 linux 安装时,我立即得到我的日志目录和文件“ads.log”
log
|__ads.log
但是 Windows 容器中也存在相同的目录“log”和相同的文件“ads.log”。
我想在 Azure 上使用相同的存储帐户和文件共享,以免增加成本。 但是我如何才能实现 Linux 和 Windows 容器都安装到卷中,而且同时区分哪个日志来自哪个容器???
另外一个问题,因为我还没有进行 windows 安装:mountPath: "C:\arena"
是定义它的正确方法吗?因为在网络上的一些例子中,一些插件被提到 windows 等等
谢谢
首先,windows的挂载格式是正确的。所以你不必担心。其次,为了区分同一文件共享中Linux容器和windows容器的日志文件夹,您可以挂载文件共享的子文件夹。
文件共享:
aksshare
│── linux
│── windows
截图:
然后像这样挂载文件共享:
.....
volumeMounts:
- name: azure
mountPath: /mnt/azure
volumes:
- name: azure
azureFile:
shareName: aksshare/linux
secretName: azure-secret
这种方式会将文件共享的两个子文件夹分别挂载到不同的容器中,互不影响。