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にアクセスするためのusername
、password
、permissions
、policies
を設定するための最小限のエンティティが定義されています。
デフォルトでは、起動時に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-mode
はexactly
に設定されており、キュー(mirrors)のミラーリングノードの正確な数を制御します。ノードの数は ha-params
で制御されます。
詳細な情報やカスタム設定については、公式の RabbitMQ ドキュメントを参照してください。
環境変数#
いくつかのオプションは環境変数で設定可能です。
環境変数 | デフォルト | 説明 |
---|---|---|
RABBITMQ_DEFAULT_USER | guest | 管理UIへのアクセス用のユーザ名 |
RABBITMQ_DEFAULT_PASS | guest | 管理UIへのアクセス用のパスワード |
RABBITMQ_DEFAULT_VHOST | / | RabbitMQのメインの仮想ホスト |
RABBITMQ_DEFAULT_HA_PATTERN | ^$ | ミラーリングされたキューを一致させるための正規表現 |