kubernetes k8s卷装载覆盖

wpcxdonn  于 2023-02-15  发布在  Kubernetes
关注(0)|答案(2)|浏览(328)

我的docker映像的工作目录被设置为“/opt”,它将包含jar文件和配置文件等。我试图在k8s中挂载它的pvc,但发现pvc将覆盖/opt目录。有没有办法在非空的docker映像中挂载该目录,谢谢。

7tofc5zh

7tofc5zh1#

当PVC装载到目录时,它将覆盖您指定的目录,而不是添加新文件。对于您的情况,当PVC装载时,目录“/opt“将被替换。要防止这种情况,您需要在/opt目录中创建一个新目录,或者您可以将PVC装载到当前目录以外的其他目录。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
  storageClassName: standard
  volumeMode: Filesystem
  volumeName: my-pvc
  mountPath: "/opt/my-pvc"

此YAML将在“/opt”目录中创建一个名为“my-pvc”的新目录,并将PVC装载到该目录中。“/opt”目录中已有的任何文件都不会被覆盖。
否则:

mountOptions:
    - path: /mnt

这会将PVC装载到/mnt目录而不是/opt,因此/opt中的数据不会被覆盖。
这个blog by Iman Tumorang将帮助您参考。

avwztpqn

avwztpqn2#

如果Docker映像的/opt目录中存在任何文件,则在将PVC装载到该目录时,PVC的内容将覆盖这些文件。要避免这种情况,您可能希望在container启动期间将文件从/opt目录复制到/opt内的子目录,然后将PVC装载到父目录。

相关问题