はじめに
立ち上げた。
vagrant upしてサービス起動すればいいようにはなっている。
coreosにしたかったがboxが見つからなかったのでubuntuにした。
雑記
- systemdの設定ファイル内で環境変数を使うために EnvironmentFile でファイル指定した。IPが違うのでそれはinit処理でいれておくことで対処した。
[Unit] Description=etcd key-value store Documentation=https://github.com/etcd-io/etcd After=network.target [Service] User=etcd Type=notify Environment=ETCD_DATA_DIR=/var/lib/etcd Environment=ETCD_NAME=%m EnvironmentFile=/etc/default/etcd ExecStart=/usr/local/bin/etcd --name ${ETCD_NAME} --data-dir /var/lib/etcd --initial-advertise-peer-urls http://${ETCD_HOST_IP}:2380 --listen-peer-urls http://${ETCD_HOST_IP}:2380 --listen-client-urls http://${ETCD_HOST_IP}:2379,http://127.0.0.1:2379 --advertise-client-urls http://${ETCD_HOST_IP}:2379 --initial-cluster-token etcd-cluster-1 --initial-cluster etcd0=http://192.168.33.200:2380,etcd1=http://192.168.33.201:2380,etcd2=http://192.168.33.202:2380 --initial-cluster-state new Restart=always RestartSec=10s LimitNOFILE=40000 [Install] WantedBy=multi-user.target
- systemdのファイル内で改行ってどうするの?ExecStartを改行したい。。。
- 最初の1台目をスタートするとき、他のホストが立ち上がっていない場合起動に失敗するため、init処理ではサービス起動を行わず、3台立ち上がったあとにコマンドでスタートするようにしたが、なんとかならないのか。
- ubuntu、ドキュメントにそって手動でインストールしたけどaptで入ることにあとで気づいた、がまぁsystemdファイルいじりたかったしいいか。。。
- ちゃんと1台でvalue setしたりremoveしたら他でも反映された。すごい。
今後
- Raftの概要と動きを学んで動かす。このへんか。
なんらかの言語のクライアントライブラリがあればそれ使って動かしてみる。実際に使いたくなるときに使えるように。
2台が落ちたときの復旧方法・動作を確認しておく。1台になるとunhealthyで書き込めなくなるはず。
- 3台落ちたときの復旧方法・動作を確認しておく。1台だけあげようとすると他がいないのであがらないような気も?(timeout時間内に他もあがろうとすると仲間をみつけてあがるような挙動にみえる。これもraftの仕様を学べばわかるか)
- データのバックアップ、リストア方法について。データディレクトリをコピってそのままそこにおけばそれだけで復元するのか、どうなのか。
- etcdctlでできること見ておく