チャネルベースのブローカ¶
チャネルベースのブローカ(MTChannelBasedBroker
)は、イベントルーティングにチャネルを使用します。これはKnative Eventingにデフォルトで同梱されています。通常、ネットワークホップ数を削減するため、ユーザーはMTChannelBasedBrokerとチャネルの組み合わせよりもネイティブなブローカの実装(Apache Kafka用KnativeブローカやRabbitMQブローカなど)を優先する必要があります。
前提条件¶
- Knative Eventingがインストールされていること。
- チャネル実装がインストールされていること。
MTChannelBasedBrokerはチャネルに基づいているため、チャネル実装をインストールする必要があります。Knative Eventingで使用可能なチャネルの(網羅的ではない)一覧については、使用可能なチャネルを参照してください。
たとえば、次のコマンドを実行してInMemoryチャネルをインストールできます。
kubectl apply -f https://github.com/knative/eventing/releases/download/knative-v1.16.0/in-memory-channel.yaml
MTChannelBasedBrokerの作成¶
kn
CLIを使用するか、kubectl
を使用してYAMLファイルを実行することで、MTChannelBasedBrokerを作成できます。
次のコマンドを入力してMTChannelBasedBrokerを作成できます。
kn broker create <broker-name> --class MTChannelBasedBroker
<broker-name>
はブローカの名前です。
次の例にあるYAMLは、ブローカを作成します。
-
次のテンプレートを使用してYAMLファイルを作成することで、MTChannelBasedBrokerを作成できます。
ここで、apiVersion: eventing.knative.dev/v1 kind: Broker metadata: annotations: eventing.knative.dev/broker.class: MTChannelBasedBroker name: <broker-name>
<broker-name>
はブローカの名前です。注記
ブローカクラスは、
eventing.knative.dev/broker.class
アノテーションで指定されていることに注意してください。 -
YAMLファイルの実行
ここで、kubectl apply -f <filename>.yaml
<filename>
は前の手順で作成したファイルの名前です。
設定¶
ブローカオブジェクト自体を設定するか、クラスタまたは名前空間のデフォルト値を定義できます。
ブローカ固有の設定¶
spec.config
でConfigMapを参照することで、各ブローカを個別に設定できます。
apiVersion: eventing.knative.dev/v1
kind: Broker
metadata:
annotations:
eventing.knative.dev/broker.class: MTChannelBasedBroker
name: default
spec:
# Configuration specific to this broker.
config:
apiVersion: v1
kind: ConfigMap
name: my-broker-specific-configuration
namespace: default
参照されるConfigMapには、このブローカの基礎となるチャネル実装と、いくつかのチャネル固有の設定を定義するchannel-template-spec
が含まれている必要があります。例:
apiVersion: v1
kind: ConfigMap
metadata:
name: my-broker-specific-configuration
namespace: default
data:
channel-template-spec: |
apiVersion: messaging.knative.dev/v1
kind: InMemoryChannel
Kafkaチャネル設定例
apiVersion: v1
kind: ConfigMap
metadata:
name: kafka-channel
namespace: knative-eventing
data:
channel-template-spec: |
apiVersion: messaging.knative.dev/v1beta1
kind: KafkaChannel
spec:
numPartitions: 3
replicationFactor: 1
ブローカのデフォルト設定¶
config-br-defaults
ConfigMapは、spec.config
またはブローカクラスを指定していないブローカのデフォルト値を定義します。これらのデフォルト値は、クラスタ全体または名前空間ごとに定義できます。ブローカのデフォルトをクラスタ全体または名前空間ごとに設定する方法については、管理者設定オプションを参照してください。
開発者向けドキュメント¶
MTChannelBasedBroker
の詳細については、MTChannelBasedBroker開発者向けドキュメントを参照してください。