【发布时间】:2021-06-29 00:19:38
【问题描述】:
我将我的Rails 6 应用程序部署在Kubernetes 集群中,并考虑如何实现我的ENV 变量。
我经常在 Rails 应用程序中使用 dotenv 和主机上的常规 ENV 变量。但看来,我现在可以省略它们并使用 Rails 凭据。但仅仅因为功能存在并不意味着它必须被使用或必须更好,对吧?
所以我不确定如何解决这个环境/安全难题:
接近 ConfigMap
- 在集群上创建一个
ConfigMap以提供ENVvars - 将所有 ENV 变量放入 ConfigMap 中
- 省略 Rails 凭据
方法凭证
- 提供 Kubernetes
Secret或带有RAILS_MASTER_KEY的 ConfigMap - 为我需要的所有变量使用 Rails 凭据
- (某些 ENV 变量是否必须保留在像
RAILS_ENV这样的 ConfigMap 中?)
我担心的缺点是,当我想更改 ENV var(修复拼写错误、缩放工作者、切换数据库、凭据...)时,我必须通过很多步骤:进行 git push、构建并标记容器并等待部署。
使用 ConfigMap 我只需 kubectl apply 进行更改。
我喜欢 Rails 的“约定优于配置”的方式,因此将 vars 分散到两种或三种不同的类型对内存来说似乎不太实用,但恐怕我必须这样做。
-
哪种方法更安全?
-
哪一个更“高效”或“开发人员友好”?
-
那么什么时候使用凭证?
-
2021 年的最佳做法是什么?
【问题讨论】:
标签: ruby-on-rails kubernetes ruby-on-rails-6