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
MirrorMaker 2 の場合:
oc apply -f examples/mirror-maker/kafka-mirror-maker-2.yaml
デプロイメントのステータスを確認します。
oc get pods -n <my_cluster_operator_namespace>
デプロイメント名と準備状態が表示されている出力
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
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。