2

为单个 Kubernetes 部署管理 3 或 4 个机密的最佳实践。

我们有一个部署,其中一些秘密在所有命名空间中重复,而另一些则是特定于环境的。

我们正在尝试在一个秘密文件和只更改需要的文件之间做出决定,或者运行 2 个以上的秘密,其中一个是 foo-dev-secrets,另一个是 foo-universal-secrets。

我们找不到在这些情况下该怎么做的任何示例,更具体地说,如何管理这些机密,我们知道您只能拥有“每卷一个机密”,但老实说,我们不确定这意味着什么。

随意回应,就好像我们是愚蠢的孩子一样。^_^

4

1 回答 1

3

运行 2+ 个秘密,其中一个是 foo-dev-secrets,另一个是 foo-universal-secrets

作为一个供您考虑的问题,一个结构良好的 RBAC 策略将确保只有具有正确权限的帐户才能在它们被分解时读取机密,如果将它们全部归为一个,这将(当然)要困难得多“所有秘密”桶

我们知道您只能拥有“每卷一个秘密”,但老实说,我们不确定这意味着什么。

那么你的公司很好,因为我也不知道这意味着什么 :-D 如果你的意思是存在全局机密,但开发机密的名称相同但更具体,我认为 docker -v可以容忍:

containers:
- name: foo
  volumeMounts:
  - name: global-secrets
    mountPoint: /run/secrets/global
    readOnly: true
  - name: foo-secret-override
    mountPoint: /run/secrets/global/no-really
    readOnly: true

...缺点是你会变得很volumes:健谈volumeMounts:

也就是说,我敢打赌,更通用、更省心的解决方案是将它们安装为对等体,然后执行相当于find /run/secrets/ -not -type d将它们全部吞下的应用程序:

  volumeMounts:
  - name: global-secrets
    mountPoint: /run/secrets/0-global
    readOnly: true
  - name: foo-secrets
    mountPoint: /run/secrets/1-foo
    readOnly: true

或者,如果可能,让应用程序从环境变量或ConfigMap-ed 情况中读取路径,这意味着可以将它们投影为对等点(仍然),但指出应用程序应该使用两个值中的哪一个。

当然,魔鬼在细节中,所以如果您能够分享有关您遇到的障碍的更多细节,请随时加入

于 2018-03-27T04:45:19.863 回答