Is it possible to split traffic by fixed ratio among two Deployments using only Service



  • Context: Kubernetes (1.23), 2 Deployments of the same app with different version/config/etc., 1 Service

    Let's say I have a web application deployed in Kubernetes using a Deployment. I want to add a new (canary, A/B testing) version of the same app as a new separate Deployment, so we're not touching the original Deployment. I want to set fixed ratio of traffic between these two Deployments.

    Is it possible to achieve this using Service, or other Kube native objects? (Not by utilizing a service mesh).



  • Closest solution I found so far is creating those two deployments with such number of pod replicas, that corresponds to the required ratio (or close to it). I.e. if the required ratio is 7:3, Deployment A would have 7 pods, Deployment B would have 3. Service being simple round-robin, should ensure the requests spread according to the ratio.

    It's not a very elegant solution though, this might be quite a big waste of resources in some cases.



Suggested Topics

  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2