gpt4 book ai didi

configuration - 存储配置和 secret

转载 作者:行者123 更新时间:2023-12-02 11:41:27 25 4
gpt4 key购买 nike

我打算将我们的应用程序(包含多个微服务)包装到一个图表中。

现在,对于每个微服务,我们将密码和配置值直接硬编码直接存储在deployment.yaml...containers[].env文件中。我们所有的yaml文件都存储在git repo中。

我注意到一些流行的图表使用ConfigMap(12)和Secret(12)Kubernetes对象分别存储配置值和 secret 。

使用ConfigMapSecret对象有什么好处,无论是从人机工程学和/或安全性方面而言?

我已经可以从我们拥有的所有yaml文件中制作出模板,从而使所有硬编码值都可以配置,从而在 Helm 模板编译期间可以解析。

但是,由于Kubernetes提供了专门的对象来存储配置和 secret 信息,所以我想证明添加configmap.yamlsecrets.yaml模板文件,以及从现有deployment.yaml文件中添加对它们的引用是合理的。

最佳答案

Configmap是非常通用的配置文件。它们可以包含键值对列表,但也可以是通用文件。例如,您可以将Nginx配置文件nginx.conf存储在configmap中,然后将其加载到适当的位置,以便nginx守护程序读取它。

secret 应该被用来存储敏感数据,不幸的是,目前 secret 尚未加密,它们只是基于64位编码的。因此,尽管这可以帮助您从 list 中删除硬编码的非加密值,但对加密完全没有帮助。这应该在v1.7中变得更好

您可以在部署 list 中设置环境变量以指向secretsconfigmaps中的特定值。两者也都可以使用kubectl轻松生成,例如:

  • kubectl create secret generic foobar --from-literal=password=foobar
  • kubectl create configmap foobar --from-file=foobar.conf

  • Helm chart 的最佳实践是同时使用两者,请参见 mariadb chart

    就个人而言,当我需要在Pod中加载文件时,我会使用configmap,而当我处理敏感的env变量时,我会使用一个 secret ,请记住该文件未加密。

    关于configuration - 存储配置和 secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44407723/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com