为什么 Kubernetes 挂载卷文件变成 pod 内的目录

Why Kubernetes mounted volume files turning into directory inside the pod

我需要将一个 zip 文件从我的主机复制到 pod/container。对于使用 hostPath 卷的情况如下

    volumeMounts:
    - mountPath: "/tmp/delivery/AB_Database.zip"
      name: db-volume
      subPath: AB_Database.zip
  volumes:
  - name: db-volume
    hostPath:
      path: /delivery/oracle 

但是当我检查 pod 内部时 AB_Database.zip 被视为目录。

这是由于您在 子路径

中提供了名称
volumeMounts:
    - mountPath: "/tmp/delivery/AB_Database.zip"
      name: db-volume
      subPath: AB_Database.zip
  volumes:
  - name: db-volume
    hostPath:
      path: /delivery/oracle 

子路径的工作方式类似于

volumeMounts:
- name: test-path
  mountPath: /a/b/c
  subPath: d

c 目录中你有一些文件 1.txt, 2.txt thn subpath 将重写 c 中的那些内容并创建新目录 d

您可以在以下位置查看更多信息:https://kubernetes.io/docs/concepts/storage/volumes/#using-subpath

如果你只是想将 zip 挂载到 POD 中,你可以使用 mountpath

- mountPath: /var/local/aaa/1.txt
  name: myfile

https://kubernetes.io/docs/concepts/storage/volumes/#hostpath-fileorcreate-example