gpt4 book ai didi

kubernetes - configmap 上的 helm upgrade 是否会自动将新数据注入(inject)正在运行的 Pod 中?

转载 作者:行者123 更新时间:2023-12-02 11:50:08 55 4
gpt4 key购买 nike

在正在运行的 pod 上发布 helm upgrade 时,我的 configmap 会更新,但是 pod 会自动知道 configmap 更新的值,还是我需要采取其他步骤将新的 configmap 值注入(inject) pod?

我的总体目标是避免与正在运行的 pod 交互,例如删除或重新启动/重新安装。

我已经看到很多关于更改 sha1sum 和做一些变通方法的信息,但我的问题更基本 - pod 会自动意识到新的 configmap 项目吗?

---- 更新 --- 所以我们最终做的是:

helm upgrade -n release -f release/values.yaml --recreate-pods

尽管这会终止现有的 pod,但在发出命令后会立即启动另一个 pod,这意味着“接近零”的停机时间。

最佳答案

如果您的 Helm chart 创建了一个 ConfigMap,并且该 ConfigMap 作为一个卷挂载到一个 pod 中,那么当 ConfigMap 更新时,the container filesystem also updates .然后由应用程序来通知文件已更改。

setting a hash of the file contents as a pod annotation 这样的技巧专门用于导致部署以删除和重新创建现有 Pod 的方式更新。这没关系! Kubernetes 中的 Pod 是一次性的,如果你删除一个由 Deployment 管理的 Pod,它会自动重新创建。如果您的应用程序仅在启动时读取 ConfigMap 内容(这是非常典型的),那么您需要执行以下操作以使 Pod 自行重启(从链接文档中复制):

kind: Deployment
spec:
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}

关于kubernetes - configmap 上的 helm upgrade 是否会自动将新数据注入(inject)正在运行的 Pod 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54579641/

55 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com