Kubernetes ConfigMap挂载单个文件而不是目录

Rus*_*mur 4 configuration file kubernetes configmap

在 Kubernetes 中是否可以将 ConfigMap 中的文件挂载到已有其他文件的目录中?例如

基础镜像文件系统:

/app/
  main/
    main.py
    test.py
Run Code Online (Sandbox Code Playgroud)

ConfigMap 包含一个文件 Mounted.py,该文件应与 main.py 和 test.py 一起安装在 /app/main/ 中。

部署后所需的文件系统:

/app/
  main/
    main.py
    test.py
    mounted.py
Run Code Online (Sandbox Code Playgroud)

到目前为止我所看到的是 ConfigMap 被安装到一个新目录,所以我最接近的是这样的:

/app/
  main/
    main.py
    test.py
    mounted/
      mounted.py
Run Code Online (Sandbox Code Playgroud)

如果我将 ConfigMap 安装到 /app/main,那么它会破坏基础映像中的现有文件。例如

/app/
  main/
    mounted.py
Run Code Online (Sandbox Code Playgroud)

有没有像这样注入单个文件的好方法?(实际上,在我的实际用例中是多个文件。)我不希望为 ConfigMap 注入的所有内容设置单独的目录,因为它偏离了标准程序架构。

Bur*_*dar 7

使用subPath

volumeMounts:
  - name: config
    mountPath: /app/main/mounted.py
    subPath: mounted.py
Run Code Online (Sandbox Code Playgroud)

显示mountPath它应该安装的位置,并subPath指向卷内的一个条目。

请注意限制:使用 subPath 时,configMap 更新不会反映在您的文件中。详细信息请参见官方文档。

  • 除了 ConfigMap 的更新不会反映到使用 subPath 挂载的文件之外,这非常有效。看起来就是这样。 (2认同)