helm3 - 升级不会强制刷新 Pod

Sou*_*abh 4 amazon-ec2 jenkins kubernetes kubernetes-helm kubernetes-pod

我们正在使用 helm3 和 Jenkins CI/CD 管道将 Java 微服务部署到 AWS“ECR > EKS”。然而我们看到的是,如果我们重新运行 Jenkins 作业来重新安装部署/pod,那么如果没有代码更改,pod 不会重新安装。它仍然保持旧的跑步舱原样。这里考虑的用例是, 部署期间拉取的数据库密钥的 AWS Secrets Manager 配置已更改,因此需要通过重新触发 Jenkins 作业来重新部署服务。

方法1https://helm.sh/docs/helm/helm_upgrade/

我尝试按照 helm3 升级文档中的建议使用“helm update --install --force ....”,但失败并在 Jenkins 日志中出现以下错误

“错误:升级失败:无法替换对象:服务“dbservice”无效:spec.clusterIP:无效值:“”:字段不可变”

方法 2:使用早期 helm 版本中的 --recreate-pods

使用“helm update --install --recreate-pods ....”,我在 Jenkins 日志中收到以下警告

“标志 --recreate-pods 已被弃用,功能将不再更新。有关重新创建 Pod 的其他方法,请查阅文档”

但是,pod 会被重新创建。但正如我们所知 --recreate-pods 不是软重启。因此我们会出现停机,这违反了微服务原则。

使用的头盔版本

version.BuildInfo{版本:“v3.4.0”,GitCommit:“7090a89efc8a18f3d8178bf47d2462450349a004”,GitTreeState:“干净”,GoVersion:“go1.14.10”}

问题

  • 如何将 --force 与 helm 3 一起使用并进行 helm Upgrade 来解决上述错误?
  • 如何使用已弃用的 --recreate-pods 实现软重启?