【发布时间】:2016-04-28 10:46:28
【问题描述】:
一直在使用最新的 Kubernetes 机密。 现在我们也有了 ConfigMap。
什么是首选的前进方式 - 秘密或配置映射?
附:经过几次迭代,我们已经稳定在以下规则:
configMaps 是每个解决方案域(可以在域内的微服务之间共享,但最终是单一用途的配置条目)
秘密在解决方案域之间共享,通常代表第三方系统或数据库
【问题讨论】:
标签: kubernetes
一直在使用最新的 Kubernetes 机密。 现在我们也有了 ConfigMap。
什么是首选的前进方式 - 秘密或配置映射?
附:经过几次迭代,我们已经稳定在以下规则:
configMaps 是每个解决方案域(可以在域内的微服务之间共享,但最终是单一用途的配置条目)
秘密在解决方案域之间共享,通常代表第三方系统或数据库
【问题讨论】:
标签: kubernetes
我是这两个功能的作者。这个想法是你应该:
在未来,可能会有一些差异化的秘密,如轮换或支持带 HSM 的秘密 API 等。总的来说,我们喜欢基于意图的 API,而秘密数据与秘密数据的意图肯定是不同的. 普通的旧配置。
希望对您有所帮助。
【讨论】:
实现的一个显着区别是kubectl apply -f:
【讨论】:
ConfigMaps 和 Secrets 都将数据存储为键值对。主要区别在于,Secrets 以 base64 格式存储数据,而 ConfigMaps 以纯文本格式存储数据。
如果您有一些关键数据,例如密钥、密码、服务帐户凭据、数据库连接字符串等,那么您应该始终使用 Secrets 而不是 Configs。
如果您想使用不想保密/隐藏的环境变量进行一些应用程序配置,例如应用程序主题、基础平台 url 等,那么您可以选择 ConfigMaps
【讨论】:
binaryData 字段而不是data,ConfigMaps 也可以存储base64 编码的数据。
stringData 而不是data 存储基于文本的机密。实际上,它更容易编辑。