etcd
CoreOSといえば、クラスタリング。
そのクラスタリングの中核といえば、etcdとfleetですが。
普通、etcdのdiscoveryサービスといえば、https://discovery.etcd.io で済ましてしまうかローカルでUbuntuやCentOSで作る、とかよく書いてあります。
でも、色々あってローカルネットワークで完結させたい、という要求はあると思うのですが。
Ubuntu等で立てるとなると、GitHubから取ってきて…、ってな話になります。
面倒くさいので、もっと簡単に済ましてしまいましょう。
簡単にetcdのディスカバリーサーバーを作る
CoreOSで作ってしまう
CoreOS用なのだからCoreOSで作ってしまえばいいじゃない、というわけで。
その作り方。
discoveryを設定せずにetcdを立ち上げる
な…何を言っているのかわからねーと思うが、 俺も何をされたのかわからなかった…
さて。
通常、cloud-configはcoreos.etcd.discoveryを記述するわけですが。
あえてdiscoveryを抜いて
cloud-config.yml
coreos:
etcd:
addr: $private_ipv4:4001
peer-addr: $private_ipv4:7001
こう書く。
すると、etcdはとりあえず立ち上がってエンドポイントは生きてる状態になる、と。
サーバーの出来上がり。
で、その他のクラスタリングするマシンはこのマシンを目掛けてdiscoveryする、ということ。
cloud-config.yml
coreos:
etcd:
discovery: http://192.168.1.1:4001/v2/keys/machines
addr: $private_ipv4:4001
peer-addr: $private_ipv4:7001
こんな感じ。
ローカルなので、もう、IP直で。
どうですか?簡単でしょう?