kubernetes秘密项目未安装为文件路径

时间:2019-07-19 02:36:36

标签: kubernetes mount-point kubernetes-secrets app-secret

我有以下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的内容。任何建议和见识都将受到赞赏。

3 个答案:

答案 0 :(得分:0)

您是否可以共享完整的Yaml,以查看它是否还有其他问题,并因此而崩溃?

我已经在我的环境中尝试过此方法,并且效果很好,请参阅附件中的图像。

在我的环境中进行了测试-参见下图:

enter image description here

答案 1 :(得分:0)

这有效:

 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

答案 2 :(得分:-1)

是的,您的假设是对的。将安装到根文件夹中将这就是为什么我们通常将机密安装在不同的文件夹下,例如/senstivie。我从未尝试过@KOk,但它看起来很有趣-了解它是否有效将会很有趣!

无论如何,如果您想看到一个实际的工作示例-这是我构建的OSS项目(Kamus,用于秘密加密的解决方案)的volume mount definitionDockerfile。它类似于您的用例-dotnet核心,带有appsettings.secrets.json。如果没有帮助,请告诉我。