千家信息网

如何使用Helm更新使用ConfigMap的应用程序

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,如何使用Helm更新使用ConfigMap的应用程序,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Helm的小小黑科技,让你简单快速
千家信息网最后更新 2025年01月31日如何使用Helm更新使用ConfigMap的应用程序

如何使用Helm更新使用ConfigMap的应用程序,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

Helm的小小黑科技,让你简单快速地更新那些使用ConfigMap的应用程序。随时随心更改配置文件内容,而应用程序将实时根据变化而更新~

Helm让Kubernetes应用程序的管理工作变得毫不费力。Helm Charts使Kubernetes应用程序的安装和升级更加容易。本文将讨论Helm的一个极妙的技巧:如何使用Helm,简单快速地更新那些使用ConfigMap的应用程序。

更新部署

上图的示例就是一个部署的配置文件。我们假设它是用于运行应用程序的。您可以在spec.template部分下指定pod模板。现在,如果您想更新应用程序,则必须从此spec.template部分更改内容。这意味着,容器镜像更改之后,部署将更新,但spec.replicas不会发生任何改变。

更新使用ConfigMap的部署

某些应用需要某些特定的配置文件和值,我们不建议将这些配置文件或配置值打包进容器镜像中,因为如果这么做的话,那每次配置文件发生更改时,都必须重新创建容器镜像。而Kubernetes提供了一种管理配置文件/值的好方法--使用ConfigMap资源。

有两种方法可以将ConfigMap数据暴露给一个pod:

  • Env vars

  • Volume mounts

下面我们将重点关注暴露ConfigMap的卷挂载方式。

我创建了一个非常简单的chart作为例子来讨论这个问题。在这个chart中,我有一个如下的ConfigMap的配置文件:

如您所见,ConfigMap的名称是nginx-cm,一个名为default.conf的文件正在读取其数据。这个default.conf是一个nginx配置文件。

现在我想为我的应用程序使用这个ConfigMap nginx-cm。所以我将通过我的应用程序的部署的配置文件中的Volume Mounts来暴露它。

如上面的示例,我们需要在【volumes】部分下添加ConfigMap,并为其指定一个唯一的名称(config-volume,如示例中所示)。然后,我们需要将这个卷添加到【containers】部分下的卷挂载中。volumeMounts.mountPath字段是容器中可供容器使用的配置文件的确切位置。

因此,使用这些配置文件,我们就可以运行使用ConfigMap提供的nginx配置文件内容的应用程序了。

下面我们需要更改nginx配置文件。更改此配置文件后,不要忘了还需要相应地更新ConfigMap,不然的话,那些使用此ConfigMap的应用程序将不会使用更新后的内容。

我们当然也可以使用kubectl update命令来更新ConfigMap。按理说,同样的,接下来我们应该更新部署。那么,kubectl update命令可以用来更新部署吗?

在我尝试这么做的时候,我收到了下面这条消息:

这是因为即使在更新ConfigMap资源之后,部署的spec.template部分也没有更改。即使ConfigMap的数据部分发生了变化,但这并没有引起部署spec.template的任何变化。对此的一种解决方法,是删除这一部署所管理的所有pod,之后部署就会创建新的pod,这些新pod使用的就是更新后的configMap了。

但我不太喜欢这种方法,因为你必须手动删除所有的pod,正因为如此我才开始寻找更好的解决方案,也就是本文所说的Helm的这个小技巧。

https://github.com/kubernetes/helm/blob/master/docs/charts_tips_and_tricks.md#automatically-roll-deployments-when-configmaps-or-secrets-change

正如你在注释中看到的那样, 你可以提供configmap文件的路径,并将其传递给sha256 sum函数。这样一来,每次configmap文件发生更改时,注释部分也会得到相应的更新,进而更新部署的spec.template部分。我发现这一招非常妙,因为如此一来,你就可以经常更改您的配置文件内容了。因为这个诀窍,Helm能够确保你的应用程序将一直及时地反映这些变化。

关于如何使用Helm更新使用ConfigMap的应用程序问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

更新 文件 配置 应用 应用程序 程序 部分 内容 容器 方法 问题 变化 数据 示例 镜像 管理 一来 名称 命令 就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库新技术及前沿发展趋势 崔腾崔翔 网络安全 初学网络技术看什么书 中国移动的网络技术岗位 电脑开机画面提示服务器运行错误 君容系统未和服务器建立信任关系 网络安全攻防展望论文 表格中选中某些数据库 计算机软件开发年龄限制 观看网络安全课件 百度在线网络技术离职率 屯郑网络技术服务部 手机服务器网络故障不支持加载 从数据库导多少数据会宕机 信息化软件开发服务保障 网络技术的力与弊 锐捷服务器商丘安装公司 网络安全与网络道德 教案 游族网络技术总监月薪 思方科技互联网家电服务平台 云数据库2018 阿里云新人注册免费送服务器 服务器怎么卸载操作系统 游戏行业怎么选择服务器 走街串巷普及网络安全 网络技术的力与弊 网络安全电信诈骗主题班会教案 深圳中鹰办公网络技术有限公司 网络安全与数据安全蓝皮书 yy软件开发试用期
0