【问题标题】:How can I present environmental information (like external service URLs or passwords) to an OpenShift / Kubernetes deployment?如何向 OpenShift / Kubernetes 部署提供环境信息(如外部服务 URL 或密码)?
【发布时间】:2020-05-02 05:49:58
【问题描述】:

我有一个前端 (React) 应用程序。我想构建它并部署到 3 个环境 - 开发、测试和生产。作为每个前端应用程序,它都需要调用一些 API。 API 地址会因环境而异。所以它们应该存储为环境变量。

我利用 S2I Openshift 构建策略来创建映像。应构建映像并为更改进行某种密封,然后在部署到每个特定环境之前注入变量。

所以我认为正确的解决方案是链式两阶段构建。第一个 S2I 编译源代码并将其放入 Nginx/Apache/other 容器中,第二个接收第一个结果,添加环境变量并生成最终图像,将部署到开发、测试和生产。

这是正确的方法还是存在更简单的解决方案?

【问题讨论】:

    标签: docker kubernetes containers openshift devops


    【解决方案1】:

    我不会将您的环境信息烘焙到您的运行时容器映像中。容器化的主要好处之一是在您的所有环境中使用相同运行时映像。为每个环境生成不同的映像会增加您的生产部署的行为与您在较低环境中测试的部署不同的可能性。

    对于非敏感信息,参数化运行时映像的典型方法是使用以下一项或多项:

    对于敏感信息,典型的方法是使用:

    【讨论】:

    • 谢谢你,尼克。我认为 ConfigMaps 是这种情况下的答案。现在我需要弄清楚如何在 React 应用程序中读取这些值,但这是另一回事。再次感谢。干杯。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 2019-01-06
    • 2012-06-07
    • 2017-01-08
    • 2021-11-23
    • 1970-01-01
    相关资源
    最近更新 更多