在不改变现有应用程序行为的情况下,在Kubernetes中使用应用程序部署ConfigMap更改的典型策略是什么



我有一个更新的应用程序要部署到Kubernetes,在ConfigMap中有一个新的映像和修改的配置。配置可能是更新的值、删除的内容或全新的配置密钥。

我的问题是,我应该如何只隔离对新版本的更改,而不将配置应用于任何现有版本?

我读过关于不可变配置映射的文章,它建议我在每次部署或每次配置更改时创建一个新的ConfigMap,这是一个可能的选择。我不确定它们是否打算以这种方式使用。或者,一旦没有其他东西使用,如何最好地安全地删除前一个。

此外,我如何保证在pods的滚动更新开始之前配置可用?

如果部署的每个修订版都会应用一些自定义配置,那么在单独的/新的ConfigMap中使用这些配置是正确的做法。

您可以考虑使用helm图表来部署应用程序,helm图表只是将yaml文件组合到一个包中。很容易对它们进行版本化并与其他人共享,因为一旦做对了,它们的目标就是可重用。这意味着清单的公共部分可以在不重写模板的情况下更改值。Helm具有将版本回滚到任何以前的修订的本地功能。

根据您的需求和用例,Kustoize可以选择生成一个名为generatorOptions 的新ConfigMap或Secret

相关内容

最新更新