Knative: Operator’s Handbook

Overriding default ingress controller

By default Knative ships with Istio as the default ingress gateway (load balancer).

However, you can install and use other custom gateways that do the same job.

Cluster-wide override

Most custom gateway installations will make themselves the default. You can find the cluster-wide default ingress class via:

kubectl get configmap --namespace knative-serving "config-network"

See keys like data > "clusteringress.class" and/or data > "ingress.class". Similarly, you can edit these keys with with the magic “ingress class” string of the ingress implementation to make it cluster-wide default

Per-Service override

To override which ingress class is used for a specific KService, use the annotation:

apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
  name: hello
  annotations:
    networking.knative.dev/ingress.class: kourier.ingress.networking.knative.dev
spec: [...]