コピペコードで快適生活

明日使えるソースを自分のために

consulことはじめ

全然わかってなかったのでメモ。

概要

  • 何やってくれるの
    • サービスディスカバリやってくれる
    • ヘルスチェック等
  • リーダーについて
    • クラスタとして動作するためにリーダーが必要。
    • リーダーはサーバモードとして立ち上げているノードから自動選出される。
      • 非サーバモードとして立ち上げている場合は選出対象外
    • リーダーはサービスの更新情報を受取り、他のnodeへ情報を伝播させる。
  • consul-template
    • consul-templateは、Consulと連携できるツールの一つで、クラスタのサービスの状態変更を検知して、動的に設定を書き換えたり、コマンドを発行するためのデーモン。
    • たとえば、appサーバの状態を検知して、nginxのupstreamの向き先の更新&reloadを行ったりできる。

コマンド

# consul入っているサーバで実行

# ノードリストの取得
curl -s localhost:8500/v1/catalog/nodes

# nodeを確認できる
consul members (nodeを確認できる)

# メンテモードの切り替え
consul maint # 確認
consul maint -disable # 無効化
consul maint -enable # 有効化

# リーダーの確認
consul info | grep leader

リンク