6.4. Kafka Connect のデプロイ
Kafka Connect は、コネクタープラグインを使用して Kafka ブローカーと他のシステムの間でデータをストリーミングする統合ツールです。Kafka Connect は、Kafka と、データベースやメッセージングシステムなどの外部データソースまたはターゲットを統合するためのフレームワークを提供し、コネクターを使用してデータをインポートまたはエクスポートします。コネクターは、必要な接続設定を提供するプラグインです。
Streams for Apache Kafka では、Kafka Connect は分散モードでデプロイされます。Kafka Connect はスタンドアロンモードでも動作しますが、Streams for Apache Kafka ではサポートされません。
Kafka Connect は、コネクター の概念を使用し、スケーラビリティーと信頼性を維持しながら Kafka クラスターで大量のデータを移動するフレームワークを提供します。
Cluster Operator は、KafkaConnect
リソースを使用してデプロイされた Kafka Connect クラスターと、KafkaConnector
リソースを使用して作成されたコネクターを管理します。
Kafka Connect を使用するには、次のことを行う必要があります。
コネクター という用語は、Kafka Connect クラスター内で実行されているコネクターインスタンスや、コネクタークラスと同じ意味で使用されます。本ガイドでは、本文の内容で意味が明確である場合に コネクター という用語を使用します。
6.4.1. Kafka Connect の OpenShift クラスターへのデプロイ
この手順では、Cluster Operator を使用して Kafka Connect クラスターを OpenShift クラスターにデプロイする方法を説明します。
Kafka Connect クラスターのデプロイメントは、コネクターのワークロードを タスク として分散する設定可能な数のノード (ワーカー とも呼ばれます) を使用して実装されるため、メッセージフローのスケーラビリティと信頼性が高くなります。
デプロイメントでは、YAML ファイルの仕様を使用して KafkaConnect
リソースが作成されます。
Streams for Apache Kafka は、設定ファイルのサンプル を提供します。この手順では、以下のサンプルファイルを使用します。
-
examples/connect/kafka-connect.yaml
Kafka Connect クラスターをデプロイして並列実行する場合、各インスタンスは内部 Kafka Connect トピックに一意の名前を使用する必要があります。これを行うには、デフォルトを置き換えるように各 Kafka Connect インスタンスを設定 します。
手順
Kafka Connect を OpenShift クラスターにデプロイします。
examples/connect/kafka-connect.yaml
ファイルを使用して Kafka Connect をデプロイします。oc apply -f examples/connect/kafka-connect.yaml
デプロイメントのステータスを確認します。
oc get pods -n <my_cluster_operator_namespace>
デプロイメント名と準備状態が表示されている出力
NAME READY STATUS RESTARTS my-connect-cluster-connect-<pod_id> 1/1 Running 0
my-connect-cluster
は、Kafka Connect クラスターの名前です。Pod ID は、作成された各 Pod を識別します。
デフォルトのデプロイでは、単一の Kafka Connect Pod を作成します。
READY
は、Ready/expected 状態のレプリカ数を表示します。STATUS
がRunning
と表示されれば、デプロイメントは成功です。
6.4.2. Kafka Connect クラスターリソースのリスト
以下のリソースは、OpenShift クラスターの Cluster Operator によって作成されます。
- <connect_cluster_name>-connect
次の Kafka Connect リソースに付けられた名前:
- Kafka Connect ワーカーノード Pod を作成する StrimziPodSet。
- Kafka Connect Pod に安定した DNS 名を提供するヘッドレスサービス。
- Kafka Connect Pod によって使用されるサービスアカウント。
- Kafka Connect ワーカーノードに設定された Pod の Disruption Budget。
- Kafka Connect REST API へのアクセスを管理するネットワークポリシー。
- <connect_cluster_name>-connect-<pod_id>
- Kafka Connect StrimziPodSet によって作成された Pod。
- <connect_cluster_name>-connect-api
- Kafka Connect クラスターを管理するために REST インターフェイスを公開するサービス。
- <connect_cluster_name>-connect-config
- Kafka Connect 補助設定が含まれ、Kafka Connect Pod によってボリュームとしてマウントされる ConfigMap。
- strimzi-<namespace-name>-<connect_cluster_name>-connect-init
- Kafka Connect クラスターによって使用されるクラスターロールバインディング。
- <connect_cluster_name>-connect-build
- Pod は、追加のコネクタープラグインを使用して新しいコンテナーイメージを構築するために使用されます (Kafka Connect Build 機能が使用されている場合のみ)。
- <connect_cluster_name>-connect-dockerfile
- 追加のコネクタープラグインを使用して新しいコンテナーイメージをビルドするために生成された Dockerfile を含む ConfigMap (Kafka Connect ビルド機能が使用されている場合のみ)。