3

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

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

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

请让任何信息知道,任何指针都非常感谢。

4

3 回答 3

3

有多种可能性,一种是您提到的 Cloud Config Server。但是,根据Twelve-Factor App的幼稚方法,配置应存储在环境中:

十二因素应用程序将配置存储在环境变量中

在 OpenShift / Kubernetes 中,这意味着我们将配置存储在Deployment自身中,ConfigMaps或者Secrets然后将它们与envFrom.configMapRef这里是一个示例)一起使用。

于 2020-05-06T13:27:56.220 回答
2

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

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

于 2020-05-06T14:21:53.167 回答
1

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

于 2020-05-24T22:40:25.087 回答