Knative: Operator’s Handbook

Broker

A Broker is the default entry point for an event in the namespace in Broker and Trigger Delivery. Broker combines channel, reply, and filter functionality into a single resource.

Broker is typically injected into the namespace (but can also be manually created) with knative-eventing-injection label:

$ kubectl label namespace default knative-eventing-injection=enabled

This creates the Broker pods in the default namespace:

$ kubectl get pods

NAME                                      READY   STATUS    RESTARTS   AGE
default-broker-filter-9fbc5c667-zxlns     0/1     Running   0          3s
default-broker-ingress-54d485746c-9x9pb   1/1     Running   0          2s

Broker is backed by a couple of InMemoryChannel by default:

$ kubectl get channel

NAME                                                        READY   REASON   URL                                                              AGE
inmemorychannel.messaging.knative.dev/default-kne-ingress   True             http://default-kne-ingress-kn-channel.default.svc.cluster.local   17s
inmemorychannel.messaging.knative.dev/default-kne-trigger   True             http://default-kne-trigger-kn-channel.default.svc.cluster.local   17s

However, it can use a more durable persistence layer such as Kafka (see Channel).

Each Broker has a cluster-local URL for events to be delivered:

$ kubectl get broker

NAME      READY   REASON   URL                                               AGE
default   True             http://default-broker.default.svc.cluster.local   2m5s