Creating a Broker
Once you have installed Knative Eventing and a Broker implementation, you can create an instance of a Broker.
Note
Knative Eventing provides by default the MTChannelBasedBroker. Its default backing channel is the InMemoryChannel. InMemoryChannel
should not be used in production. Other Broker types and their configuration options can be found under Available Broker types.
You can create a Broker by using the kn
CLI or by applying YAML files using kubectl
.
knkubectl
You can create a Broker by entering the following command:
kn broker create <broker-name> -n <namespace>
This will create a new Broker of your default Broker class and default Broker configuration (both defined in the
config-br-defaults
ConfigMap).Note
If you choose not to specify a namespace, the Broker will be created in the current namespace.
Note
If you have multiple Broker classes installed in your cluster, you can specify the Broker class via the
--class
parameter, e.g.:kn broker create <broker-name> -n <namespace> --class MTChannelBasedBroker
Optional: Verify that the Broker was created by listing existing Brokers:
kn broker list
Optional: You can also verify the Broker exists by describing the Broker you have created:
kn broker describe <broker-name>
The YAML in the following example creates a Broker named default
.
Create a Broker by creating a YAML file using the following template:
apiVersion: eventing.knative.dev/v1
kind: Broker
metadata:
name: <broker-name>
namespace: <namespace>
This creates a new Broker using the default Broker class and default Broker configuration, both of which are defined in the
config-br-defaults
ConfigMap.Apply the YAML file:
kubectl apply -f <filename>.yaml
Where
<filename>
is the name of the file you created in the previous step.Optional: Verify that the Broker is working correctly:
kubectl -n <namespace> get broker <broker-name>
This shows information about your Broker. If the Broker is working correctly, it shows a
READY
status ofTrue
:NAME READY REASON URL AGE
default True http://broker-ingress.knative-eventing.svc.cluster.local/default/default 1m
If the
READY
status isFalse
, wait a few moments and then run the command again.