Kubernetes能够从配置文件中设置(在部署定义中)环境变量。根据Twelve Factor App guide的规定,应该只在环境变量中存储密钥/配置变量,而不是在文件中。
支持使用Kubernetes ConfigMap设置环境变量的参数是什么?
发布于 2017-12-20 21:18:54
十二要素应用程序指南advocates the use of environment variables because when using configuration files
很容易将配置文件错误地签入存储库;配置文件往往分散在不同的位置和不同的格式中,因此很难在一个地方查看和管理所有的配置。此外,这些格式往往是特定于语言或框架的。
您可以将ConfigMap作为卷挂载到应用程序的文件系统中,但随后您的应用程序将负责知道如何在应用程序启动期间读取该文件。通常,在启动应用程序时读取传递的环境变量会更容易一些。
在这两种情况下(从文件读取和从环境变量读取),您都将遵循十二因素应用程序推荐。但当从文件中读取配置时,我认为在其他地方运行该应用程序会更困难,因为它需要我们首先创建该文件,这是一个在不同平台上可能不同的过程。另一方面,传递环境变量在所有平台上通常都是相同的。
能够轻松地在不同平台上运行应用程序是十二要素应用程序指南的关键目标,因此我选择直接从ConfigMap传递环境变量。
发布于 2020-01-09 03:44:38
我认为12 Factor Guide应该用不同的措辞来避免这种混乱。重要的是,应用程序应该从“语言和操作系统无关的标准”的环境中“读取”(而不是“存储”)配置。
通过mapping managed/versioned configuration to environment variables in a container,ConfigMaps帮助实现了这一点。
https://stackoverflow.com/questions/47899119
复制相似问题