はじめに
RabbitMQは、確立された汎用メッセージブローカーです。ブローカーは、一連の分散マイクロサービス間のメッセージ交換を容易にし、効率的かつ確実に通信できるようにします。
API中心のアプローチを採用したKubernetesは、RabbitMQインスタンスをクラスターにデプロイするための理想的なオペレーターです。 Kubernetesのスケーリング機能と自動コンテナデプロイにより、拡張クラスター環境でのRabbitMQの信頼性が向上します。
このチュートリアルでは、RabbitMQインスタンスをKubernetesにインストールする方法を示します。
前提条件
- ターミナルウィンドウ/コマンドラインへのアクセス
- Kubernetesクラスター
- Kubernetes kubectl CLIツール
KubernetesにRabbitMQをデプロイする
Kubernetesクラスターに高度なソフトウェアソリューションをインストールするには、多くの場合、いくつかの複雑な構成ファイルを作成および編集する必要があります。
ヘルム 、Kubernetesアプリケーションパッケージマネージャーは、インストールプロセスを合理化し、クラスター全体にリソースを非常に迅速にデプロイできます。 RabbitMQを正常にデプロイするには、Helmパッケージマネージャーをインストールする必要があります。
HelmPackageManagerのインストール
次のコマンドを使用して、ローカルのKubernetesクラスターに最新バージョンのHelmをインストールします。
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
インストールプロセスが完了したら、次のコマンドを入力してHelmパッケージマネージャーを起動します。
helm init
Helmを使用して、いくつかの短いコマンドでクラスター全体にリソースをデプロイできるようになりました。
RabbitMQデプロイメントの名前空間を作成する
Kubernetesのすべてのリソースは名前空間で開始されます。指定されていない限り、システムはデフォルトのネームスペースを使用します。展開プロセスをより適切に制御するには、次のコマンドを使用して個別の名前空間を作成します。
kubectl create namespace rabbit
DNS互換の名前を使用できます。作成した名前空間の名前はrabbit。です。
名前空間が正常に作成されたことをシステムが確認します。
KubernetesにRabbitMQをインストールする
Helmが正常にインストールされ、指定された名前空間があれば、RabbitMQデプロイメントプロセスを開始する準備が整います。次のコマンドを入力して、デフォルトの stable / rabitmqを適用します gitリポジトリからのチャート:
helm install mu-rabbit stable/rabbitmq --namespace rabbit
このコマンドは、デフォルト構成のKubernetesクラスターにRabbitMQをデプロイします。デプロイはウサギで実行されます 以前に作成された名前空間。
ターミナルは、クレデンシャル、ポート番号、URLなど、ブラウザからRabbitMQ管理インターフェイスにアクセスするために必要な情報を提供します。
RabbitMQプロビジョニングステータスの確認
コンテナのデプロイには少し時間がかかる場合があります。プロビジョニングシーケンスの完全なステータスにより、展開が成功したかどうかを確認できます。展開の詳細を確認するには、次のコマンドを入力します。
watch kubectl get deployments,pods,services --namespace rabbit
ターミナル内のシェルは、ウサギの名前空間の詳細を提供します。
監視シェルを終了する準備ができたら、 Ctrl + Cを押します。 。
RabbitMQサーバーの構成
RabbitMQサーバーとそのプラグインの設定は、RabbitMQ構成ファイル内で編集されます。
お好みのテキストエディタを使用して、rabbitmq.confにアクセスして設定できます。 ファイル。構成ファイルの構文は、 sysctl
を使用します フォーマット、および遵守すべきいくつかの基本原則があります:
- システムは
#
で始まる行を実行しません コメントと見なされるため、キャラクター - 1行に定義できる設定は1つだけです
- 行は単純な<strong>キー=値を使用します 構造
rabbitmq.conf ファイルを使用すると、ポート、メモリしきい値、ディスク容量、ブローカーに接続するためのアクセス許可など、必要な構成項目のほとんどを定義できます。
RabbitMQサーバーソースリポジトリは、詳細なコメントを含むrabbitmq.confファイルの包括的な例を提供します。このサンプルファイルは一般的なガイドであり、システムの特定のニーズを反映するように調整する必要があることに注意してください。
GUIを有効にするためのRabbitMQ管理プラグインの設定
RabbitMQ管理プラグインは、デフォルトのディストリビューションですでに利用可能です。 rabbitmq-plugins
を使用します サービスを有効にするコマンド:
rabbitmq-plugins enable rabbitmq_management
RabbitMQサーバーのIPとポート番号を使用して、RabbitMQグラフィカルインターフェイスにアクセスします。ブラウザに次のWebロケーション形式を入力します。
http://rabbitmq-ip-or-server-name:15672/
IPとポート番号は、インストールプロセス中に提供されました。
サービスはあなたの資格情報を要求します。 UIにアクセスするには、ユーザー名とパスワードを入力する必要があります。新しいRabbitMQインストールでは、デフォルトのユーザー名とパスワードの両方が「ゲスト」として事前定義されています。
これで、仮想ホスト、キュー、権限、および交換を管理できるユーザーフレンドリーな環境にアクセスできるようになりました。
RabbitMQはKubernetesでどのように機能しますか?
Kubernetesの目的は、高度に分散されたクラスターでサービスをオーケストレーションし、ジョブを自動化することです。 RabbitMQのようなメッセージングブローカーは、長時間実行されるタスクの品質を向上させ、重要なバックグラウンドプロセスを安定させることができます。
RabbitMQは、Advanced Message Queuing Protocol(AMQP)を使用して、プロデューサー、ブローカー、およびコンシューマー間のメッセージングを標準化します。
- プロデューサー Exchangeにメッセージを公開します 。
- Exchangeはメッセージをフォーマットし、事前定義され選択されたキューに転送します。 。
- 消費者 次に、フォーマットされたメッセージを取得して消費します。
メッセージの体系的な配布により、疎結合のアプリケーションとサービス間の通信が改善されます。