Skip to content

Latest commit

 

History

History
51 lines (33 loc) · 2.25 KB

etcd.md

File metadata and controls

51 lines (33 loc) · 2.25 KB

etcd集群管理

一个Lain集群有且只有一个etcd-cluster支持。每一个Lain集群中的node上都会运行一个etcd,或是etcd-member,或是etcd-proxy

所以在任何一个node上,只需通过 http://localhost:4001 即可访问etcd-cluster

初始化

Lain集群初始化时,会启动一个etcd节点,此时是一个单节点的etcd-cluster。

此后每一个新加入Lain集群的node上,都会在加入时启动一个etcd,以proxy身份连入etcd-cluster

查看member

etcdctl member list

etcdctl ls /lain/nodes/etcd-members  # 结果现实节点为member

resize etcd cluster

如上所说,etcd cluster只有一个member,其他的node上全都是proxy。此时的etcd cluster并不是高可用的。

Lain支持手动修改各个node上etcd的mode,即把一个etcd-proxy变成etcd-member,以提高可用性;或将etcd-member改成etcd-proxy以提高性能。

node2:192.168.77.22:22为例(可通过etcdctl ls /lain/nodes/nodes 查看所有节点)。

proxy 变 member

etcdctl set /lain/nodes/etcd-members/node2:192.168.77.22:22 192.168.77.22
ansible-playbook -i playbooks/cluster -e role=etcd  playbooks/role.yaml

member 变 proxy

etcdctl rm /lain/nodes/etcd-members/node2:192.168.77.22:22
ansible-playbook -i playbooks/cluster -e role=etcd  playbooks/role.yaml

cluster unhealth

如果 etcd 集群的 member 所在机器发生了宕机或其他异常(如磁盘空间不足)。会导致 etcd member 不能正常工作。

修复的方法通常是,将故障节点从 etcd cluster 中移除,再作为一个新节点动态的加入到集群中。

具体的操作方法,请参考 etcd 官方文档

在对 etcd 集群进行修改时,为避免出现操作错误导致整个集群不可恢复。建议提前做一次备份,具体的操作方法参考 Backing up the datastore。这样如果在操作过程中出现了整个集群无可用而且无法恢复的情况,可利用备份重建一个新集群。