如何在 Spinnaker 中设置滚动部署?

How do I setup rolling deployment in Spinnaker?

我刚开始试用 Spinnaker。我已经完成了教程,https://www.spinnaker.io/guides/tutorials/codelabs/gcp-kubernetes-source-to-prod/,并顺利运行。

现在我想更高级一点,进行滚动发布或金丝雀部署 (https://www.spinnaker.io/concepts/#deployment-strategies),例如,在可能的情况下,仅将新版本公开给 5%客户。

我找不到任何有关 spinnaker.io(或 google)的设置指南。谁能指导我正确的方向?

我最近一直在自己的 Spinnaker 和 Canary 部署上进行实验和 PoC,以下是我迄今为止的发现。

要实施滚动发布,只需在 Spinnaker 中创建一个 Deploy 阶段,然后在您的服务器组配置中将部署策略设置为 RollingUpdate。在更改部署策略之前,您需要确保选中 Deployment 复选框。

对于 Canary Deployment,它稍微复杂一点。我认为 Canary Stage 目前还不支持 Kubernetes 部署,但显然您可以手动将金丝雀(例如 1 个副本)部署到您的应用所在的同一个 Kubernetes LoadBalancer 中 运行。这是使用单独的 Spinnaker 服务器组完成的。

然后您可以将手动判断添加到您的 Spinnaker 管道中,该管道将暂停,直到您 test/validate 金丝雀。一旦 canary 被验证,你 "Continue" 手动判断,新的服务器组被部署,旧的服务器组被禁用,金丝雀被销毁。

如果您不想使用手动判断,并希望它完全自动化,您可以添加一个 ACA 阶段(自动金丝雀分析)。这涉及设置一个 Spinnaker 可以连接的法官,它将收集各种指标并提供 ACA 分数。然后您可以使用该分数来决定是继续部署还是停止部署。