etcd是一个开源的分布式键值对数据库,他的每一个节点都有一份数据的copy,当有节点故障时保证了高可用性。etcd使用Raft算法来保证一致性。
etcd的apiv3在使用命令时需要在前面加上ETCDCTL_API=3
集群成员1
ETCDCTL_API=3 etcdctl member list
更新一个节点ip1
2etcdctl member list
etcdctl member update memberID http://ip:2380
删除一个节点1
2
3
4etcdctl member list
etcdctl member remove memberID
etcdctl member list
ps -ef|grep etcd //在相关节点上kill掉etcd进程
测试增加一个新节点
注意:添加已经删除的需要将etcd3的rm -rf /var/lib/etcd/*必须删除
移除节点1
2ETCDCTL_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