Kubernetes - 将只读共享挂载为可写

Kubernetes - mount read only share as writable

我正在使用此配置将只读驱动器挂载到 docker 图像:

volumes:
  - name: drive-c
    hostPath:
      path: /media/sf_C_DRIVE
containers:
  ...
    volumeMounts:
    - name: drive-c
      mountPath: /c

当我尝试将 (mkdir) 写入 docker 映像中的这个文件夹(虚拟框只读安装文件夹)时,我得到:

mkdir: can't create directory 'somedir': Read-only file system

没关系,因为这是只读文件系统 (C_DRIVE on /c type vboxsf (rw,nodev,relatime))

是否可以通过某种方式使此文件夹在 docker 容器内可写?不需要将更改传播到 hostPath。我阅读了一些关于 overlayfs 的内容,但我不确定如何在 Kubernetes yaml 中指定它。

您不能通过 Kubernetes 卷挂载来执行此操作,因为它们只是在卷上工作。您需要做的是在您的主机上创建一个可写的覆盖文件系统,然后将其映射到具有不同可写路径的 Kubernetes 中。

你想创建类似 /mnt/writable_sf_C_drive 的东西,方法是安装你的 /media/sf_C_DRIVE 并在其上覆盖一层,然后你在 Kubernetes 中的卷安装将安装 /mnt/writable_sf_C_DRIVE.

有一些说明here