このチュートリアルでは、Docker を使用して Apache Kafka クラスターをデプロイする方法を学びます。これにより、提供された Docker イメージを使用して、ほぼすべての環境で Kafka クラスターを迅速に起動できるようになります。
基本から始めて、Kafka とは何かについて説明しましょう。
Apache Kafka とは何ですか?
Apache Kafka は、無料のオープンソースで、拡張性が高く、分散型でフォールトトレラントなパブリッシュ/サブスクライブ メッセージング システムです。大量、高スループット、リアルタイムのデータ ストリームを処理できるように設計されており、ログ集約、リアルタイム分析、イベント駆動型アーキテクチャなどの多くのユース ケースに適しています。
Kafka は分散アーキテクチャに基づいており、複数のサーバー間で大量のデータを処理できます。これは、プロデューサーがトピックにメッセージを送信し、コンシューマーがメッセージを受信するためにサブスクライブするパブリッシュ/サブスクライブ モデルを使用します。これにより、プロデューサーとコンシューマー間の通信を分離できるようになり、高い拡張性と柔軟性が実現します。
Docker Compose とは
Docker compose は、マルチコンテナー アプリケーションを定義して実行するための Docker プラグインまたはツールを指します。 Docker を使用すると、YAML ファイルでコンテナー構成を定義できます。構成ファイルには、アプリケーションに必要なサービス、ネットワーク、ボリュームなどのコンテナ仕様が含まれています。
docker-compose コマンドを使用すると、1 つのコマンドで複数のコンテナーを作成して起動できます。
Docker と Docker Compose のインストール
最初のステップは、ローカル マシンに Docker がインストールされていることを確認することです。詳細については、次のリソースを確認してください。
- https://linuxhint.com/install_configure_docker_ubuntu/
- https://linuxhint.com/install-docker-debian/
- https://linuxhint.com/install_docker_debian_10/
- https://linuxhint.com/install-docker-ubuntu-22-04/
- https://linuxhint.com/install-docker-on-pop_os/
- https://linuxhint.com/how-to-install-docker-desktop-windows/
- https://linuxhint.com/install-use-docker-centos-8/
- https://linuxhint.com/install_docker_on_raspbian_os/
このチュートリアルの執筆時点では、docker compose をインストールするには、ターゲット マシンに Docker デスクトップをインストールする必要があります。したがって、docker compose をスタンドアロン ユニットとしてインストールすることは非推奨です。
Docker をインストールしたら、YAML ファイルを構成できます。このファイルには、Docker コンテナーを使用して Kafka クラスターをスピンアップするために必要なすべての詳細が含まれています。
Docker-Compose.YAML のセットアップ
docker-compose.yaml を作成し、お気に入りのテキスト エディターで編集します。
$ touch docker-compose.yaml$ vim docker-compose.yaml
次に、次のように docker 構成ファイルを追加します。
バージョン : 「3」サービス :
動物園の飼育員 :
画像 : ビットナミ / 動物園の飼育員 : 3.8
ポート :
- 「2181:2181」
ボリューム :
- 「zookeeper_data:/bitnami」
環境 :
- ALLOW_ANONYMOUS_LOGIN = はい
カフカ :
画像 : 港湾労働者。 これ / ビットナミ / カフカ : 3.3
ポート :
- 「9092:9092」
ボリューム :
- 「kafka_data:/bitnami」
環境 :
- KAFKA_CFG_ZOOKEEPER_CONNECT = 動物園の飼育員 : 2181
- ALLOW_PLAINTEXT_LISTENER = はい
依存する :
- 動物園の飼育員
ボリューム :
動物園の飼育員のデータ :
運転者 : 地元
カフカデータ :
運転者 : 地元
サンプルの docker ファイルは、Zookeeper と Kafka クラスターをセットアップします。Kafka クラスターは、調整のために Zookeeper サービスに接続されます。このファイルは、通信とサービスへのアクセスを可能にするために、各サービスのポートと環境変数も構成します。
また、コンテナーが再起動または再作成された場合でもサービスのデータを保持するように、名前付きボリュームをセットアップします。
前のファイルを簡単なセクションに分割してみましょう。
まず、bitnami/zookeeper:3.8 イメージを使用して Zookeeper サービスを開始します。次に、このイメージは、ホスト マシンのポート 2181 をコンテナのポート 2181 にマップします。また、ALLOW_ANONYMOUS_LOGIN 環境変数を「yes」に設定します。最後に、サービスがデータを保存するボリュームをzookeeper_dataボリュームとして設定します。
2 番目のブロックは、Kafka サービスをセットアップするための詳細を定義します。この場合、ホスト ポート 9092 をコンテナ ポート 9092 にマップする docker.io/bitnami/kafka:3.3 イメージを使用します。同様に、KAFKA_CFG_ZOOKEEPER_CONNECT 環境変数も定義し、その値をマップされる Zookeeper のアドレスに設定します。ポート 2181。このセクションで定義する 2 番目の環境変数は、ALLOW_PLAINTEXT_LISTENER 環境変数です。この環境変数の値を「yes」に設定すると、Kafka クラスターへのセキュリティで保護されていないトラフィックが許可されます。
最後に、Kafka サービスがデータを保存するボリュームを提供します。
Docker が Zookeeper と Kafka のボリュームを構成できるようにするには、ボリューム セクションに示すようにボリュームを定義する必要があります。これにより、zookeeper_data ボリュームと kafka_data ボリュームが設定されます。どちらのボリュームもローカル ドライバーを使用します。つまり、データはホスト マシンに保存されます。
ほら、ありますよ!簡単な手順で Docker を使用して Kafka コンテナーをスピンアップできるようにするシンプルな構成ファイル。
コンテナの実行
Docker が実行されていることを確認するには、次のコマンドを使用して YAML ファイルからコンテナーを実行します。
$ 須藤 ドッカーの構成コマンドは YAML 構成ファイルを見つけて、指定された値でコンテナーを実行する必要があります。
結論
これで、docker compose YAML 構成ファイルから Apache Kafka を構成して実行する方法を学習しました。