Skip to content

HTTP Traffic Splitting

HTTP traffic splitting

In this usecase, we will understand the slightly more complex application method of HTTPRoute.

You can implement the grayscale publishing of the application through HTTPRoute, and smoothly transition traffic to new services.

See here for GatwayClass and Gateway definitions.

---

apiVersion: gateway.networking.k8s.io/v1beta1
kind: HTTPRoute
metadata:
  name: myhttproute
spec:
  parentRefs:
    - name: mygateway
      sectionName: http
  hostnames:
    - gateway.test.automation
  rules:
    - matches:
        - path:
            type: PathPrefix
            value: /test1
      backendRefs:
        - name: coffee
          port: 80
          weight: 1
        - name: tea
          port: 80
          weight: 9
    - matches:
        - path:
            type: PathPrefix
            value: /test2
      backendRefs:
        - name: coffee
          port: 80
          weight: 9
        - name: tea
          port: 80
          weight: 1

Refer here for services tea and coffee definition.

In the above httproute definition, we see that there are two rules:

  • when we access /test1, 90% of the traffic is forwarded to the tea service
  • when we access /test2, 90% of the traffic is forwarded to the coffee service

You may change the two ratios, and run kubectl apply -f httproute.yaml again to achieve a change in the traffic ratio.


Last update: February 6, 2023 16:16:03
Created: February 6, 2023 16:16:03