我刚刚开始尝试Spinnaker。我已经阅读了教程https://www.spinnaker.io/guides/tutorials/codelabs/gcp-kubernetes-source-to-prod/,并且在没有问题的情况下使用它。
现在我想更高级一些,并进行滚动发布或canary部署(https://www.spinnaker.io/concepts/#deployment-strategies),例如,可能只向5%的客户公开新版本。
我找不到关于如何设置它的spinnaker.io(或谷歌)的任何指南。任何人都可以指导我朝正确的方向发展吗?
答案 0 :(得分:0)
我最近自己一直在尝试和使用Spinnaker和Canary Deployments进行PoC,这是我迄今为止所发现的。
要实现滚动版本,只需在Spinnaker中创建一个Deploy
阶段,并在服务器组配置中将部署策略设置为RollingUpdate
。在更改部署策略之前,您需要确保选中Deployment
复选框。
对于Canary部署,它涉及更多一点。我认为Canary Stage目前还不支持Kubernetes Deployments,但显然您可以手动将canary(例如1个副本)部署到运行应用程序的Kubernetes LoadBalancer中。这是使用单独的Spinnaker Server Group完成的。
然后,您可以向Spinnaker管道添加手动判断,该管道将暂停,直到您测试/验证金丝雀。验证了金丝雀后,您“继续”手动判断,新的服务器组被部署,旧的服务器组被禁用,金丝雀被破坏。
如果您不想使用手动判断,并希望完全自动化,则可以添加ACA阶段(自动化金丝雀分析)。这涉及建立一个Spinnaker可以连接的法官,它将收集各种指标并提供ACA分数。然后,您可以使用该分数来决定是继续部署还是停止部署。