etcdv3 集群基本操作使用

etcd是一个开源的分布式键值对数据库,他的每一个节点都有一份数据的copy,当有节点故障时保证了高可用性。etcd使用Raft算法来保证一致性。

etcd的apiv3在使用命令时需要在前面加上ETCDCTL_API=3
集群成员

1
ETCDCTL_API=3 etcdctl member list

更新一个节点ip

1
2
etcdctl member list
etcdctl member update memberID http://ip:2380

删除一个节点

1
2
3
4
etcdctl member list  
etcdctl member remove memberID
etcdctl member list
ps -ef|grep etcd //在相关节点上kill掉etcd进程

测试增加一个新节点
注意:添加已经删除的需要将etcd3的rm -rf /var/lib/etcd/*必须删除
移除节点

1
2
ETCDCTL_API=3  etcdctl --endpoints=https://192.168.7.93:2379,https://192.168.7.94:2379,https://192.168.7.92:2379   --cacert=/etc/kubernetes/ssl/ca.pem   --cert=/etc/etcd/ssl/etcd.pem   --key=/etc/etcd/ssl/etcd-key.pem  member  list -w table
ETCDCTL_API=3 etcdctl --endpoints=https://192.168.7.93:2379,https://192.168.7.94:2379,https://192.168.7.92:2379 --cacert=/etc/kubernetes/ssl/ca.pem --cert=/etc/etcd/ssl/etcd.pem --key=/etc/etcd/ssl/etcd-key.pem member remove 7d17ab970f6de141

添加节点

1
2
3
4
5
 ETCDCTL_API=3  etcdctl --endpoints=https://192.168.7.93:2379,https://192.168.7.94:2379,https://192.168.7.92:2379   --cacert=/etc/kubernetes/ssl/ca.pem   --cert=/etc/etcd/ssl/etcd.pem   --key=/etc/etcd/ssl/etcd-key.pem  member add  etcd3 --peer-urls="https://192.168.7.92:2380" //查看新增成员列表,etcd3状态为unstarted
rm -rf /var/lib/etcd/* //etcd3上面操作
vi /etc/systemd/system/etcd.service ///etcd3上面操作 修改--initial-cluster-state=existing 不改报错 streaming request ignored (ID mismatch got 7d17ab970f6de141 want 58662caff7c6e081)

systemctl daemon-reload && systemctl restart etcd ///etcd3上面操作
ETCDCTL_API=3 etcdctl --endpoints=https://192.168.7.93:2379,https://192.168.7.94:2379,https://192.168.7.92:2379 --cacert=/etc/kubernetes/ssl/ca.pem --cert=/etc/etcd/ssl/etcd.pem --key=/etc/etcd/ssl/etcd-key.pem member list -w table