Carpe Diem

備忘録

Consul

ConsulのACLでハマった話2

概要 以前 christina04.hatenablog.com という記事を書きましたが、また別のケースでハマった話を書きます。 今回はACLを有効にしたConsulクラスタのサーバをアップグレードしようとしたら Error joining address 'xxx.xxx.xxx.xxx': Unexpected response co…

ConsulでService登録をした時のACLでハマった話

概要 Consulではserviceを登録することでService Discovery機能を活用することができます。 例えば "service": { "name": "payment", "port": 9090, "tags": ["development"] } のように設定をすると、 $ dig @localhost -p 8600 payment.service.consul でp…

ConsulのACLを後から有効化する

概要 christina04.hatenablog.com ではConsulのACLの基本的な設定方法を説明しました。その時は "default_policy": "deny"のようにデフォルトで全リソースのアクセス禁止にしてwhitelist形式で扱っていきます。 と言いましたが、そもそもACL未設定なConsulを…

ConsulのACLでアクセス制御

概要 ConsulにはACL(Access Control List)といって、AWSのIAMに似たアクセスコントロールの仕組みがあります。 今回はそれの設定方法を説明します。 環境 Consul v1.4.0 Consul ACL ACL System 大きく分けて ACL Policies ACL Tokens というコンポーネントが…

bindアドレスとadvertiseアドレス

概要 ConsulやVaultのクラスタ構成をしていると bind address advertise address という2つのアドレスを設定する必要が出てきます。 この2つをしっかり理解しておかないとクラスタ構成で思わぬ落とし穴にハマったりするので今回はこれを紹介します。 bind…

Consulクラスタをアップグレードした時に起きた問題と対応

概要 先日Consulクラスタのアップグレードをしたところちょこちょこ問題にぶち当たって解決に時間がかかったので、同じ症状に遭ったりした人用にメモ。 環境 Consul 1.1.0 -> 1.2.2 Ubuntu 16.04 問題背景 Consulはクライアントエージェントが追加されたり死…

Consulを支える技術

概要 ConsulではSWIMやRaftといった技術を使っています。 今回はそれらを説明します。 環境 Consul 1.1.0 SWIM Gossip Protocol SWIMはGossip Protocolの一種で、主に クラスタのメンバ管理機能 メンバの障害検出機能 イベント伝播 で使われています。

ECS + awsvpc + Consul でService Discovery

概要 ECS + awsvpc + Consul でService Discoveryができるようにします。 最終的にConsulにDNS問い合わせすることでECSのコンテナのIPを知ることができるようにします。 環境 Consul 1.1.0 Task Definition 結論を先にいうと以下のようになります。 [ { "nam…

Consulで各サービスのコンテナ群のIPを取得する

概要 以前Consulの基本的な使い方を紹介しました。 christina04.hatenablog.com このConsulに登録する各ノードに対しサービス設定をすることで、各マイクロサービスに所属しているコンテナ群のIPを取得できるようします。 それによってgRPCでの負荷分散とし…

Consulを使ってみる

概要 Consulというサービス・ディスカバリツールを使います。 クラウド時代ではオートスケールなどサーバの台数やIPが変動することが多いため、動的に検知できる必要がありConsulはそのためのツールです。 またConsulを通してどのサーバ上でどのようなサービ…