<p>I have an application with multiple services called from a primary application service.  I understand the basics of doing canary and A/B deployments, however all the examples I see show a round robin where each request switches between versions.  </p>

<p>What I'd prefer is that once a given user/session is associated with a certain version it stays that way to avoid giving a confusing experience to the user.  </p>

<p>How can this be achieved with Kubernetes or Istio/Envoy?</p>

gunygoogoo
<p>You can do this with Istio using <a href="https://istio.io/docs/tasks/traffic-management/request-routing/#route-based-on-user-identity" rel="nofollow noreferrer">Request Routing - Route based on user identity</a> but I don't know how mature the feature is. It may also be possible to route based on cookies or header values.</p>
