5

我有以下yaml:

        volumeMounts:
        - name: app-secret
          mountPath: /app
          readOnly: true
      volumes:
      - name: app-secret
        secret:
          secretName: app-secret
          items:
          - key: app-secret.json
            path: appsettings.secret.json

我希望秘密已经安装,/app/appsettings.secret.json但事实并非如此。我不知道它安装在哪里,容器崩溃了,我也没有机会kubectl exec进入容器检查秘密的安装位置。我的猜测是它会清除/app. 任何建议和见解都值得赞赏。

4

3 回答 3

10

这有效:

 volumeMounts:
        - name: app-secret
          mountPath: /app/appsettings.secret.json
          subPath: appsettings.secret.json
          readOnly: true
      volumes:
      - name: app-secret
        secret:
          secretName: app-secret
          items:
          - key: app-secret.json
            path: appsettings.secret.json
于 2019-07-20T13:09:10.817 回答
0

您是否可以共享完整的 yaml 以查看它是否有其他问题,因此它会为您崩溃?

我已经在我的环境中尝试过,效果很好,请参阅附图。

在我的环境中测试 - 见下图:

在此处输入图像描述

于 2019-07-19T05:57:41.870 回答
-1

是的,你的假设是对的。挂载到根文件夹这就是为什么我们通常将秘密挂载到不同的文件夹下,比如/senstivie. 我从未尝试过 @KOk ,但它看起来很有趣 - 如果它有效,我会很有趣!

无论如何,如果你想看一个真实的工作示例 - 这是卷挂载定义,这是我构建的 OSS 项目的Dockerfile (Kamus,一个秘密加密的解决方案)。它类似于您的用例 - dotnet core,带有 appsettings.secrets.json。如果没有帮助,请告诉我。

于 2019-07-21T06:06:27.400 回答