【问题标题】:helm deployments with readynessprobe带有 readynessprobe 的 helm 部署
【发布时间】:2018-09-24 16:59:51
【问题描述】:

我在 CI 中使用 helm 来使用更新版本的图表升级部署。

helm upgrade --wait --install .

预期行为: --wait 标志应该等待新图表中定义的 readinessProbe。 也可以看看: https://docs.helm.sh/helm/#helm-upgrade

但是,即使 readinessProbe 失败,它也不会等待,而是简单地部署新图表。

这会导致新图表失败和旧图表死亡。

与此无关 https://github.com/helm/helm/issues/3173,因为 readinessProbe 正确执行并失败。但是 Helm 并没有等到这个。

有人遇到过这样的问题吗? 谢谢!

【问题讨论】:

  • 能分享一下相关的YAML文件吗?我对helm install --wait 的运气不太好,但一般来说,Kubernetes 部署不会开始杀死旧的 pod,直到新的 pod 健康检查成功。
  • 您使用哪个版本的 helm?
  • 我用的是 helm 2.9.0。

标签: kubernetes kubernetes-helm


【解决方案1】:

问题已通过在部署资源中设置以下 Kubernetes yaml 描述得到修复:

  strategy:
   type: RollingUpdate
   rollingUpdate:
    maxSurge: 1
    maxUnavailable: 0

Kubernetes Deployment Documentation:

注意:部署控制器将停止错误的推出 自动,并将停止扩展新的 ReplicaSet。这个 取决于 rollingUpdate 参数(具体为 maxUnavailable) 您已指定。 Kubernetes 默认将值设置为 1 和 .spec.replicas 为 1 所以如果你不关心设置这些 参数,你的 Deployment 默认可以 100% 不可用! 这将在 Kubernetes 的未来版本中修复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-11
    • 2019-06-29
    • 2019-01-12
    • 1970-01-01
    • 2020-03-19
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多