4
3

More than 5 years have passed since last update.

ConsulをDNSとしてOSから見る

Last updated at Posted at 2015-09-29

したいこと

Consulに登録したサービス名で $ host xxx とか、$ curl xxx, $ ping xxx みたいに、Unix OSから普通にアクセスしたい。

note

  • sudo とかは省略してます
  • Amazon Linux (AWS) で試しています
  • 簡単の為 /etc/resolv.conf を直接弄っています (あまり良くない)
  • Amazon Linuxの /etc/resolv.conf はnetwork再起動で元に戻っちゃいます

手順

docker-consul が無いと始まらないので、Runする.

$ docker run -d -p 8400:8400 -p 8500:8500 -p 8600:53/udp -h node1 --name consul progrium/consul -server -bootstrap -ui-dir /ui

立ち上がったdocker containerのIPを知りたい.

$ docker inspect -f '{{.NetworkSettings.IPAddress}}' consul

172.17.0.1

ConsulのIPを /etc/resolv.confnameserver xxx.xxx.xxx.xxx と書く.
Consulが管理するドメインが service.dc1.consul なので、search ... に追記する.

; generated by /sbin/dhclient-script
search ap-northeast-1.compute.internal service.dc1.consul  ; service.dc1.consulを追加.
nameserver 172.17.0.1  ; この行を追加.
nameserver 172.31.0.2

Amazon Linuxの場合、ConsulのIPを既存のnameserver 172.31.0.2 より先に記述しないと、名前解決できなかった。

アクセスしてみる

$ host any-service-name

any-service-name.service.dc1.consul has address 172.17.0.2

サービスの登録方法は?

ConsulをDNSサーバーとして使う に書いています。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3