【问题标题】:Helm/k8s: upgrade without downtimeHelm/k8s:无需停机即可升级
【发布时间】:2018-12-11 22:04:49
【问题描述】:

我正在尝试习惯 helm,但在使用 helm upgrade 时遇到了问题。问题是,是否有可能实现 0 停机?

我注意到的事情是 helm/k8s 在新的 Pod 准备好/上线之前删除了旧的 Pod。是否可以说只有在新的启动并运行时才能删除旧的?这似乎是一个非常合乎逻辑的案例,但我不知道该怎么做。

注意:现在我正在使用 helm upgrade --recreate-pods notes notes/ 强制重新创建 pod,可能是这样吗?

【问题讨论】:

  • 你是直接部署Pods吗?如果您将其更改为 Deployment,Kubernetes 将自动为您管理复制和零停机更新。
  • 我用的是helm,不是直接用K8s
  • 我认为您对 helms 角色感到困惑。 Helm 是一个帮助您将应用程序部署到 Kubernetes 的工具。它不会取代任何 kubernetes 功能。 Kubernetes 使用部署类型、推出策略和活跃度 + 就绪度探测提供零停机部署。见kubernetes.io/docs/concepts/workloads/controllers/deployment/…

标签: kubernetes kubernetes-helm


【解决方案1】:

您的应用程序应该有Livness and Readiness probes,因此只有当对新应用程序的就绪探测通过时,它才会关闭旧应用程序。 你也可以看看Deployment Strategy

this article 中所述,在为 Kubernetes 构建应用程序时,必须使用 Liveness 和 Readiness 探针。

【讨论】:

  • Helm 与否,Liveness 和 Readiness 探针将解决您的问题。您可能还想重新考虑您对--recreate-pods 的使用,您为什么首先使用它?
猜你喜欢
  • 1970-01-01
  • 2016-01-11
  • 1970-01-01
  • 2014-11-02
  • 1970-01-01
  • 2016-11-23
  • 1970-01-01
  • 2022-11-11
  • 1970-01-01
相关资源
最近更新 更多