【发布时间】:2020-01-15 23:17:06
【问题描述】:
首先——让我们假设我们有一个 React 应用程序。我们想要构建它并部署到 3 个环境 - 开发、测试和生产。作为每个前端应用程序,它都需要调用一些 API。 API 地址会因环境而异。所以它们应该存储为环境变量。
作为每个现代、进步的开发人员,我们都希望使用容器。特别是 Kubernetes。
我们想要构建我们的 Web 应用程序并将其部署在 K8S 集群上。应该构建容器映像并密封更改,然后在部署到每个特定环境之前注入变量。
但这里似乎有一个很大的不可能。例如,对于 .NET 应用程序,当我们编译 .dll 时,它会在运行时读取一个配置文件。这不是 React 的情况。在我们生成构建之后,我们只有静态文件。在构建 React 应用程序的过程中,变量被更改为静态值。在那之后似乎没有办法更新它 - 或者是吗?
【问题讨论】:
-
正如其他人所提到的。您想利用 K8 的“ConfigMaps”和“Secrets”。您可以将它们作为环境变量或“虚拟文本文件”注入。我更喜欢“虚拟文本文件”而不是环境变量的秘密,所以“记录器”不会记录秘密(在转储所有环境变量时)。因此,您编写一些基本代码来读取这些值(配置映射或机密),这些值会在 pod 出现时“挂载”...
-
请参阅这篇文章了解我关于将“秘密”作为环境变量的观点:techbeacon.com/devops/how-keep-your-container-secrets-secure
-
请看这个:Kubernetes: services
标签: reactjs docker kubernetes containers