2.5. Kafka MirrorMaker クラスターの設定
KafkaMirrorMaker
リソースを使用して Kafka MirrorMaker デプロイメントを設定します。KafkaMirrorMaker は、Kafka クラスター間でデータを複製します。
「KafkaMirrorMaker
スキーマ参照」 KafkaMirrorMaker
リソースの完全なスキーマについて説明します。
AMQ Streams は MirrorMaker または MirrorMaker 2 で使用できます。MirrorMaker 2 は最新バージョンで、Kafka クラスター間でデータをミラーリングするためのより効率的な方法を提供します。
Kafka MirrorMaker 1 (ドキュメントでは単に MirrorMaker と呼ばれる) は Apache Kafka 3.0.0 で非推奨となり、Apache Kafka 4.0.0 で削除されます。そのため、Kafka MirrorMaker 1 のデプロイに使用される KafkaMirrorMaker
カスタムリソースも、AMQ Streams で非推奨となりました。Apache Kafka 4.0.0 を導入すると、KafkaMirrorMaker
リソースは AMQ Streams から削除されます。代わりに、IdentityReplicationPolicy
で KafkaMirrorMaker2
カスタムリソースを使用します。
2.5.1. Kafka MirrorMaker の設定 リンクのコピーリンクがクリップボードにコピーされました!
KafkaMirrorMaker
リソースのプロパティーを使用して、Kafka MirrorMaker デプロイメントを設定します。
TLS または SASL 認証を使用して、プロデューサーおよびコンシューマーのアクセス制御を設定できます。この手順では、コンシューマーおよびプロデューサー側で mTLS による暗号化および認証を使用する設定を説明します。
前提条件
以下を実行する方法については、OpenShift での AMQ Streams のデプロイおよびアップグレード を参照すること。
- ソースおよびターゲットの Kafka クラスターが使用できる必要があります。
手順
KafkaMirrorMaker
リソースのspec
プロパティーを編集します。設定可能なプロパティーは以下の例のとおりです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 2
- コンシューマーおよびプロデューサーの ブートストラップサーバー。
- 3
- 4
- 5
- 6
- コンシューマーまたはプロデューサーの TLS 証明書が X.509 形式で保存される、キー名のある TLS による暗号化。複数の証明書が同じシークレットに保存されている場合は、複数回リストできます。
- 7
- 8
- 9
- TLS バージョンの特定の 暗号スイート と実行される外部リスナーの SSL プロパティー。
- 10
HTTPS
に設定することで、ホスト名の検証が有効 になります。空の文字列を指定すると検証が無効になります。- 11
abortOnSendFailure
プロパティー がtrue
に設定されている場合、メッセージの送信に失敗した後、Kafka MirrorMaker は終了し、コンテナーは再起動します。- 12
- TLS バージョンの特定の 暗号スイート と実行される外部リスナーの SSL プロパティー。
- 13
HTTPS
に設定することで、ホスト名の検証が有効 になります。空の文字列を指定すると検証が無効になります。- 14
- ソースからターゲット Kafka クラスターにミラーリングされた 含まれるトピック。
- 15
- 16
- 指定された ロガーおよびログレベル が ConfigMap を介して直接的に (
inline
) または間接的に (external
) に追加されます。カスタム ConfigMap は、log4j.properties
またはlog4j2.properties
キー下に配置する必要があります。MirrorMaker にはmirrormaker.root.logger
と呼ばれる単一のロガーがあります。ログレベルは INFO、ERROR、WARN、TRACE、DEBUG、FATAL、または OFF に設定できます。 - 17
- コンテナーを再起動するタイミング (liveness) およびコンテナーがトラフィックを許可できるタイミング (readiness) を把握するための ヘルスチェック。
- 18
- Prometheus メトリクス。この例では、Prometheus JMX エクスポーターの設定が含まれる ConfigMap を参照して有効になります。
metricsConfig.valueFrom.configMapKeyRef.key
配下に空のファイルが含まれる ConfigMap の参照を使用して、追加設定なしでメトリクスを有効にできます。 - 19
- Kafka MirrorMaker を実行している仮想マシン (VM) のパフォーマンスを最適化するための JVM 設定オプション。
- 20
- 高度な任意設定: 特別な場合のみ推奨される コンテナーイメージの設定。
- 21
- テンプレートのカスタマイズ。ここでは、Pod は非アフィニティーでスケジュールされるため、Pod は同じホスト名のノードではスケジュールされません。
- 22
- 分散トレース用に環境変数が設定されます。
- 23
- Jaeger では分散トレースが有効になっています。
警告abortOnSendFailure
プロパティーがfalse
に設定されると、プロデューサーはトピックの次のメッセージを送信しようとします。失敗したメッセージは再送されないため、元のメッセージが失われる可能性があります。リソースを作成または更新します。
oc apply -f <your-file>
oc apply -f <your-file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.2. Kafka MirrorMaker クラスターリソースの一覧 リンクのコピーリンクがクリップボードにコピーされました!
以下のリソースは、OpenShift クラスターの Cluster Operator によって作成されます。
- <mirror-maker-name>-mirror-maker
- Kafka MirrorMaker Pod の作成を担当するデプロイメント。
- <mirror-maker-name>-config
- Kafka MirrorMaker の補助設定が含まれ、Kafka ブローカー Pod によってボリュームとしてマウントされる ConfigMap。
- <mirror-maker-name>-mirror-maker
- Kafka MirrorMaker ワーカーノードに設定された Pod の Disruption Budget。