6.6. Kafka MirrorMaker のデプロイ
Kafka MirrorMaker は、データセンター内またはデータセンター全体の 2 台以上の Kafka クラスター間でデータをレプリケーションします。Kafka パーティションレプリケーションの概念との混同を避けるために、このプロセスはミラーリングと呼ばれます。MirrorMaker は、ソースクラスターからのメッセージを消費し、それらのメッセージをターゲットクラスターに再パブリッシュします。
クラスター間のデータレプリケーションは、以下を必要とするシナリオをサポートします。
- システム障害時のデータの復旧
- 集中分析のための複数のソースクラスターからのデータの統合
- 特定のクラスターへのデータアクセスの制限
- レイテンシーを改善するための特定場所でのデータのプロビジョニング
6.6.1. Kafka MirrorMaker の OpenShift クラスターへのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
この手順では、Cluster Operator を使用して Kafka MirrorMaker クラスターを OpenShift クラスターにデプロイする方法を説明します。
デプロイメントでは、YAML ファイルの仕様を使用して、デプロイされた MirrorMaker のバージョンに応じて KafkaMirrorMaker または KafkaMirrorMaker2 リソースが作成されます。MirrorMaker 2 は Kafka Connect に基づいており、その設定プロパティーを使用します。
Kafka MirrorMaker 1 (ドキュメントでは単に MirrorMaker と呼ばれる) は Apache Kafka 3.0.0 で非推奨となり、Apache Kafka 4.0.0 で削除されます。そのため、Kafka MirrorMaker 1 のデプロイに使用される KafkaMirrorMaker カスタムリソースも、Streams for Apache Kafka で非推奨となりました。KafkaMirrorMaker リソースは、Apache Kafka 4.0.0 の導入時に Streams for Apache Kafka から削除されます。代わりに、IdentityReplicationPolicy で KafkaMirrorMaker2 カスタムリソースを使用します。
Streams for Apache Kafka は、設定ファイルのサンプル を提供します。この手順では、以下のサンプルファイルを使用します。
-
examples/mirror-maker/kafka-mirror-maker.yaml -
examples/mirror-maker/kafka-mirror-maker-2.yaml
同じターゲット Kafka クラスターを使用して、MirrorMaker 2 クラスターを並列実行するようにデプロイする場合、各インスタンスは内部 Kafka Connect トピックに一意の名前を使用する必要があります。これを行うには、デフォルトを置き換えるように各 MirrorMaker 2 インスタンスを設定 します。
手順
Kafka MirrorMaker を OpenShift クラスターにデプロイします。
MirrorMaker の場合
oc apply -f examples/mirror-maker/kafka-mirror-maker.yaml
oc apply -f examples/mirror-maker/kafka-mirror-maker.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow MirrorMaker 2 の場合:
oc apply -f examples/mirror-maker/kafka-mirror-maker-2.yaml
oc apply -f examples/mirror-maker/kafka-mirror-maker-2.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイメントのステータスを確認します。
oc get pods -n <my_cluster_operator_namespace>
oc get pods -n <my_cluster_operator_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイメント名と準備状態が表示されている出力
NAME READY STATUS RESTARTS my-mirror-maker-mirror-maker-<pod_id> 1/1 Running 1 my-mm2-cluster-mirrormaker2-<pod_id> 1/1 Running 1
NAME READY STATUS RESTARTS my-mirror-maker-mirror-maker-<pod_id> 1/1 Running 1 my-mm2-cluster-mirrormaker2-<pod_id> 1/1 Running 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow my-mirror-makerは、Kafka MirrorMaker クラスターの名前です。my-mm2-clusterは、Kafka MirrorMaker 2 クラスターの名前です。Pod ID は、作成された各 Pod を識別します。
デフォルトのデプロイメントでは、単一の MirrorMaker または MirrorMaker 2 Pod をインストールします。
READYは、Ready/expected 状態のレプリカ数を表示します。STATUSがRunningと表示されれば、デプロイメントは成功です。
6.6.2. Kafka MirrorMaker 2 クラスターリソースのリスト リンクのコピーリンクがクリップボードにコピーされました!
以下のリソースは、OpenShift クラスターの Cluster Operator によって作成されます。
- <mirrormaker2_cluster_name>-mirrormaker2
次の MirrorMaker 2 リソースに指定された名前。
- MirrorMaker 2 ワーカーノード Pod を作成する StrimziPodSet。
- MirrorMaker 2 Pod に安定した DNS 名を提供するヘッドレスサービス。
- MirrorMaker 2 Pod によって使用されるサービスアカウント。
- MirrorMaker 2 ワーカーノードに設定された Pod の Disruption Budget。
- MirrorMaker 2 REST API へのアクセスを管理するネットワークポリシー。
- <mirrormaker2_cluster_name>-mirrormaker2-<pod_id>
- MirrorMaker 2 StrimziPodSet によって作成された Pod。
- <mirrormaker2_cluster_name>-mirrormaker2-api
- MirrorMaker 2 クラスターを管理するための REST インターフェイスを公開するサービス。
- <mirrormaker2_cluster_name>-mirrormaker2-config
- MirrorMaker 2 の補助設定が含まれ、MirrorMaker 2 Pod によってボリュームとしてマウントされる ConfigMap。
- strimzi-<namespace-name>-<mirrormaker2_cluster_name>-mirrormaker2-init
- MirrorMaker 2 クラスターによって使用されるクラスターのロールバインディング。
6.6.3. Kafka MirrorMaker クラスターリソースのリスト リンクのコピーリンクがクリップボードにコピーされました!
以下のリソースは、OpenShift クラスターの Cluster Operator によって作成されます。
- <mirrormaker_cluster_name>-mirror-maker
次の MirrorMaker リソースに指定された名前。
- MirrorMaker Pod を作成するデプロイメント。
- MirrorMaker ノードで使用されるサービスアカウント。
- MirrorMaker ワーカーノードに設定された Pod の Disruption Budget。
- <mirrormaker_cluster_name>-mirror-maker-config
- MirrorMaker の補助設定が含まれ、MirrorMaker Pod によってボリュームとしてマウントされる ConfigMap。