这里要吐槽一下:我用的是3.16,集群相关的好多命令行都已经改变了或者是根本用不了。
再次强调一下:一定关闭防火墙,不然无法加入新节点。
1、增加新节点
第一步:
curl http://192.168.75.137:2379/v2/members -XPOST \
-H "Content-Type: application/json" -d '{"peerURLs":["http://192.168.75.140:2380"]}'
#的按照官网的方式以 member add的方式没有成功,故而采取这种方式。此时到集群中其他任意几点执行 etcdctl member list 已经可以看到新加入的节点了,只是还处于未启动状态而已。
第二步:
/opt/etcd/etcd-v3.1.6-linux-amd64/etcd --name=etcd03\
--data-dir=/opt/etcd/etcd-v3.1.6-linux-amd64/etcd00 \
--initial-advertise-peer-urls=http://192.168.75.140:2380 \
--listen-peer-urls=http://192.168.75.140:2380 \
--listen-client-urls=http://192.168.75.140:2379,http://127.0.0.1:2379\
--advertise-client-urls=http://192.168.75.140:2379\
--initial-cluster-token=etcd-cluster-00\
--initial-cluster=etcd00=http://192.168.75.137:2380,etcd01=http://192.168.75.138:2380,etcd02=http://192.168.75.139:2380,,etcd03=http://192.168.75.140:2380 \
--initial-cluster-state=existing
#此时最容易出现rafthttp: request cluster ID mismatch,主要是由于以生成的data-dir引起的,删除后重新执行第二步即可成功。
2、查看节点列表
etcdctl member list
3、删除节点
etcdctl member remove nodeId
4、更新节点
etcdctl member update nodeId peerUrl
5、健康检查
etcdctl endpoint status
etcdctl endpoint health