# Manage Knative routes

# Add route

You can add additional HTTP(S) routes pointing to your Knative apps by creating new serving.knative.dev/Route resources:

# another-route.yaml
apiVersion: serving.knative.dev/v1
kind: Route
metadata:
  name: another-route
  namespace: demo
spec:
  traffic:
  - configurationName: hello-world # name of your Knative app / service
    latestRevision: true
    percent: 100
$ kubectl -n demo apply -f another-route.yaml

$ kubectl -n demo get route

NAME            URL                                                    READY   REASON
another-route   https://another-route.demo.kube-plus.cloud   True
hello-world     https://hello-world.demo.kube-plus.cloud     True

# List routes

Get a list of all current Knative routes within a namespace (demo in the example below) by using the kn -n <namespace> route list command as described here (opens new window) in detail.

$ kn -n demo route list

NAME            URL                                                       READY
another-route   https://another-route.demo.kube-plus.cloud      True
hello-world     https://hello-world.demo.kube-plus.cloud        True

# Inspect a route

$ kn -n demo route describe hello-world

Name:       hello-world
Namespace:  demo
Age:        45m
URL:        https://hello-world.demo.kube-plus.cloud
Service:    hello-world

Traffic Targets:
  100%  @latest (hello-world-00001)

Conditions:
  OK TYPE                      AGE REASON
  ++ Ready                     44m
  ++ AllTrafficAssigned        45m
  ++ CertificateProvisioned    44m
  ++ IngressReady              44m

# Traffic management

With Knative routes you can also manage traffic routing to different revisions of an application / service, by modifying the traffic spec of the service resource.

Initially your application might have a traffic spec where 100% of traffic is routed to the latestRevision of the service. And then you can modify the spec so that traffic is split between multiple revisions, for example sending 50% of traffic to the current revision and 50% of traffic to another revision.

For example to split traffic for a service named example, by sending 80% of traffic to the revision green and 20% of traffic to the revision blue, you could run the following command:

$ kn service update example-service --traffic green=80 --traffic blue=20

Consult this detailed documentation on Knative Traffic Management (opens new window) for more information.

# Routing blue/green deployments

Especially of interest might the section about routing with blue/green deployments (opens new window)

Last Updated: 9/12/2022, 7:31:38 PM