每个应用都需要配置,最简单的方法就是把配置存储在源代码中。这种方法有一个副作用,就是配置和代码同生共死,就像不可变的服务器概念所描述的那样。然而,我们仍然需要灵活地调整配置,而不需要重新创建应用镜像。事实上,这种重新创建是很耗时的,而且对持续交付方法来说是一种反面教材,在这种方法中,应用程序被创建一次,然后在部署管道的各个阶段不加修改地移动,直到达到生产。

    在这种情况下,我们如何使应用程序适应开发、集成和生产环境的不同设置?答案是使用外部配置数据,每个环境的配置数据都是不同的。下面几章的模式都是关于用外部配置来定制和适应不同环境的应用程序。

    • 第 18 章,环境变量(EnvVar)配置,使用环境变量来存储配置数据。
    • 第 19 章,配置资源,使用 ConfigMap 或 Secret 等 Kubernetes 资源来存储配置信息。
    • 第 20 章,不可变(Immutable)配置,通过在运行时将其放入链接到应用程序的容器中,为大型配置集带来了不可更改性。
    • 第 21 章,配置模版,当需要为各种环境管理仅有细微差别的大型配置文件时,它非常有用。