Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
假设有一个 1.0 版的 Web 应用程序在生产中运行。您希望与生产版本 1.0 并排部署新版本 2.0。您希望将流量从用户/客户子集路由到新版本。换句话说,如何在 Kubernetes 上为基于 Web 的应用程序实现真正的金丝雀版本(如本文所定义)。
Kubernetes文档讨论了金丝雀部署,但没有提到如何实现基于用户的路由。是否可以通过 Kubernetes 提供的现有负载均衡支持实现基于 cookie 的粘性负载均衡。
Kubernetes 上的 Canary 部署涉及部署同一 App 但不同版本的 Pod:例如,如果您有 5 个 Pod 用于一个 App,其中一个可能是新版本,您的 1/5 流量将被定向到这个新版本.
要实现基于用户的金丝雀部署,您可以在服务上使用粘性会话,使用
sessionAffinity: ClientIP
这将确保当客户端连接时,它将始终位于同一个 Pod 上(如果 IP 保持不变)
我认为没有基于“cookie”的方式来分配流量。