コンテンツにスキップ

RabbitMQ#

Lagoon RabbitMQ Dockerfileで、管理プラグインがインストールされています。docker-hubにある公式のrabbitmq:3-managementイメージをベースにしています。

このDockerfileは、スタンドアロンのRabbitMQキューブローカーをセットアップするためだけでなく、デフォルトで高可用性キューサポート(ミラーリングキュー)を備えたクラスタをセットアップするためのベースイメージとしても使用できます。

デフォルトでは、RabbitMQブローカーはシングルノードで起動します。クラスタを起動する場合は、rabbitmqイメージに加えてrabbitmq_peer_discovery_k8sプラグインが組み込まれたrabbitmq-cluster Dockerイメージを使用する必要があります。

サポートされるバージョン#

  • 3.10 Dockerfile (2023年7月までセキュリティサポート) - uselagoon/rabbitmq

Lagoonの適応#

このイメージはLagoonで使用されることを想定して準備されています。そのため、すでにいくつかのことが行われています:

  • フォルダの権限は、fix-permissionsで自動的に適応されるため、このイメージはランダムなユーザーで動作します。
  • /etc/rabbitmq/definitions.jsonは、コンテナエントリーポイントを持つenvplateを通して処理されます。

RabbitMQデフォルトスキーマ(definitions.json)#

  • ミラーリングキューのサポートするには、少なくとも一つのpolicyが必要です。
  • definitions.jsonスキーマファイルには、コンテナの実行、virtualhost(vhost)、管理UIにアクセスするためのusernamepasswordpermissionspoliciesを設定するための最小限のエンティティが定義されています。

デフォルトでは、起動時にlagoon-haという名前のポリシーが作成されますが、デフォルトの環境変数で設定されているキュー名のパターンに一致しないため、アクティブではありません。

definitions.json
"policies":[
        {"vhost":"${RABBITMQ_DEFAULT_VHOST}","name":"lagoon-ha","pattern":"${RABBITMQ_DEFAULT_HA_PATTERN}", "definition":{"ha-mode":"exactly","ha-params":2,"ha-sync-mode":"automatic","ha-sync-batch-size":5}}
  ]

デフォルトでは、ha-modeexactlyに設定されており、キュー(mirrors)のミラーリングノードの正確な数を制御します。ノードの数は ha-params で制御されます。

詳細な情報やカスタム設定については、公式の RabbitMQ ドキュメントを参照してください。

環境変数#

いくつかのオプションは環境変数で設定可能です。

環境変数 デフォルト 説明
RABBITMQ_DEFAULT_USER guest 管理UIへのアクセス用のユーザ名
RABBITMQ_DEFAULT_PASS guest 管理UIへのアクセス用のパスワード
RABBITMQ_DEFAULT_VHOST / RabbitMQのメインの仮想ホスト
RABBITMQ_DEFAULT_HA_PATTERN ^$ ミラーリングされたキューを一致させるための正規表現