Closed aeleniumfor closed 5 years ago
etcdコマンドの引数に以下を渡して上げるようだ
etcd --name master1 --initial-advertise-peer-urls http://$IP:2380 \
--listen-peer-urls http://$IP:2380 \
--listen-client-urls http://$IP:2379,http://127.0.0.1:2379 \
--advertise-client-urls http://$IP:2379 \
--initial-cluster-token etcd-cluster \
--initial-cluster master1=http://$IP1:2380,master2=http://IP2:2380,master3=http://IP3:2380 \
--initial-cluster-state new
static方式ではこれで組める.
etcdのserviceを定義できない
service自体は定義できているのかを確認する
/var/lib/etcd/配下にetcd-cluster.serviceを定義していた. /etc/systemd/system/etcd-cluster.serviceに移す
$ systemctl daemon-reload
$ systemctl list-unit-files --type=service | grep etcd-cluster
etcd-cluster.service disabled
サービス定義できた disabledだけど...
disableの原因は lacks both ExecStart= and ExecStop= setting. Refusing. のようだ.
ExecStart= 追加した. 新たなエラー ignore pathでエラーが起きている
dockerのserviceを見てみる.
$ systemctl status docker
docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2019-01-06 03:46:13 UTC; 46min ago
Docs: https://docs.docker.com
Main PID: 10334 (dockerd)
Tasks: 8
Memory: 32.1M
CGroup: /system.slice/docker.service
└─10334 /usr/bin/dockerd -H unix://
/usr/lib/systemd/system/docker.serviceにserviceが定義されているようだ
$ cat /usr/lib/systemd/system/docker.service
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H unix://
/usr/bin/dockerdとバイナリはフルパスでコマンドが渡っているようだ
etcdの方もバイナリをフルパスで渡してみる
ExecStart=/usr/bin/etcd
これで
$ systemctl start etcd-cluster
$ systemctl status -l etcd-cluster
を行う
statusの結果
$ systemctl status -l etcd-cluster
an 06 04:38:09 master01 systemd[1]: etcd-cluster.service: main process exited, code=exited, status=1/FAILURE
Jan 06 04:38:09 master01 systemd[1]: Failed to start etcd.
Jan 06 04:38:09 master01 systemd[1]: Unit etcd-cluster.service entered failed state.
Jan 06 04:38:09 master01 systemd[1]: etcd-cluster.service failed.
環境変数用の EnvironmentFile を作成してあげることで環境変数を渡すことができた.
$ systemctl status etcd-cluster
etcd-cluster.service - etcd
Loaded: loaded (/etc/systemd/system/etcd-cluster.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2019-01-07 17:48:41 UTC; 23h ago
Main PID: 6054 (etcd)
サービスでactiveになっているので完了
curl http://<クラスタを構築したip>/v2/members | jq . で確認する. pubulic設定なのでココには記述しない jqコマンドはjsonを整形してくれるコマンド
WHY
etcdのstaticでのクラスタ構築方法(static)についてメモを残して置きたい
WHAT
参考にしたのは https://coreos.com/etcd/docs/latest/op-guide/clustering.html