外部化配置节点js

Externalize configuration node js

我要在 openshift 中部署一个节点 js 服务,我需要外部化的属性很少,例如数据库配置和应用程序属性。

我有 java 个应用程序 运行 作为使用配置服务器作为配置存储和 GIT 作为源的解决方案的一部分。我已经看到 npm 的库与 spring 配置服务器集成。

所以,我在这里寻找最佳实践,在 k8s 或 openshift 等编排工具中将 nodejs 中的配置外部化的最佳方法是什么。或者我们可以在上述场景中使用配置服务器吗?

请告知任何信息,非常感谢任何指点。

有多种可能性,一种是您提到的云配置服务器。然而,根据Twelve-Factor App的天真方法,配置应该存储在环境中:

The twelve-factor app stores config in environment variables

在 OpenShift / Kubernetes 中,这意味着我们会将配置存储在 Deployment 本身,ConfigMapsSecrets 中,然后将它们与 envFrom.configMapRef 一起使用( here is an example).

如果您正在转向编排工具,我会说使用他们的产品。在 k8s 中,您通常会使用 ConfigMaps 来管理您的应用程序配置。此解决方案的优点在于您还可以将配置作为代码进行,因此您可以 Configmaps 控制版本。

还有一件事,NodeJ 的最佳实践是使用环境变量。因此,您可以使用编排产品将所有配置安装到环境中,此外,您还可以对敏感信息进行秘密加密(API 密钥等)

对于任何有帮助的人,我们采用了环境变量方法,因为我们可以使用的参数非常少,而且我们看不到这种方法有太大变化。如果它增长,我们将查看上面的 configmap 方法(同样由 simon / obanby 建议)。