Kubernetes Secrets与ConfigMaps

时间:2016-04-28 10:46:28

标签: kubernetes

最近一直在使用Kubernetes的秘密。 现在我们也有ConfigMaps。

前进的首选方式是什么?秘密或配置地图?

P.S。经过几次迭代后,我们已经稳定了以下规则:

  • configMaps是每个解决方案域(可以在域内的微服务之间共享,但最终是单用途配置条目)

  • 秘密在解决方案域之间共享,通常代表第三方系统或数据库

3 个答案:

答案 0 :(得分:86)

我是这两个功能的作者。这个想法是你应该:

  1. 将秘密用于实际秘密的事物,如API密钥,凭证等
  2. 将配置映射用于非秘密配置数据
  3. 将来可能存在一些差异,例如轮换或支持秘密API w / HSM等等。一般来说,我们喜欢基于意图的API,而秘密数据与普通数据的意图明显不同旧的配置。

    希望有所帮助。

答案 1 :(得分:0)

实施中的一个显着区别是kubectl apply -f

  • 如果数据没有更改,ConfigMap将保持“不变”。
  • 秘密始终是“配置的”-即使文件没有更改

答案 2 :(得分:0)

ConfigMap和Secrets都将数据存储为键值对。主要区别在于,秘密以base64格式存储数据,而 ConfigMaps以纯文本格式存储数据

如果您有一些关键数据,例如密钥,密码,服务帐户凭据,数据库连接字符串等,则应始终使用秘密,而不是Configs。

如果您想使用环境变量进行一些应用程序配置,而这些环境变量不想让您保密/隐藏,例如应用程序主题,基本平台网址等,则可以使用 ConfigMaps < / p>