kubernetes - 在 Kubernetes 中使用应用程序部署 ConfigMap 更改而不改变现有应用程序的行为的典型策略是什么?
问题描述
我有一个更新的应用程序要部署到 Kubernetes,其中包含一个新图像和ConfigMap
. 配置可能是更新的值、删除的内容或全新的配置键。
我的问题是,我应该如何隔离对新版本的更改而不将配置应用于任何现有版本?
我已经阅读了有关不可变配置映射的信息,它建议我ConfigMap
在每次部署或每次配置更改时创建一个新映射,这是一个可能的选择。我不确定它们是否打算以这种方式使用。或者,一旦没有其他人使用它,如何最好地安全地删除前一个。
另外,如何在 Pod 滚动更新开始之前保证配置可用?
解决方案
如果您部署的每个修订版都将应用一些自定义配置,那么将其单独/新建ConfigMap
是正确的方法。
您可以考虑使用helm chart部署您的应用程序,它们只是将 yaml 文件组合到单个包中。很容易对它们进行版本化并与其他人共享,因为一旦正确完成,它们的目标就是可重用。这意味着可以在不重写模板的情况下更改清单的公共部分的值。Helm 具有将发布回滚到任何先前版本的本机功能。
根据您的需求和用例,Kustomize 可以选择生成新的 ConfigMap 或 Secret,称为generatorOptions
推荐阅读
- javascript - 在 javascript 中实现 drop it 功能但需要的答案没有得到它
- google-apps-script - 有什么方法可以为 Gmail 帐户创建的每个 Google 表单做一个吗?
- android - 如何在 Jetpack Compose 中将触摸事件分派给父可组合项
- macos - MacOs OpenGL 向前兼容性?
- c++ - 如何复制向量中的字符串
> 到矢量 ? - c# - .NET 5如何构建netcoreapp3.1?
- css - 在 useEffect 挂钩中使用 addEventListener 更新 classNames
- css - 不包括在 php & htaccess 中的文件
- ionic-framework - 在离子滑块中获取 getActiveIndex 错误
- django - 不应有 max_length 的 Django max_length