Etcd Recovery
大致步骤 生成etcd证书 cert-file和key-file用于etcd服务器与客户端之间的通信,而peer-cert-file和peer-key-file用于集群内部etcd节点间的相互通信。 ...
大致步骤 生成etcd证书 cert-file和key-file用于etcd服务器与客户端之间的通信,而peer-cert-file和peer-key-file用于集群内部etcd节点间的相互通信。 ...
etcd节点状态 在 Raft 协议中,一个节点可以处于以下三种状态之一: Leader:领导者 Follower:跟随者 Candidate:候选人 etcd节点本身有2种成员状态 learner:无法被选为leader,可通过etcdctl member promete变更 voting:默认,可参与leader选举 Docker方式部署(3节点增到5节点) 添加节点4 docker exec -it db23999d731d etcdctl --endpoints http://localhost:2380,http://localhost:22380,http://localhost:32380 member add s4 --peer-urls=http://localhost:4380 启动节点4 systemctl restart s4.service s4.service 具体配置 使用主机网络--net=host 数据目录映射到--volume=/tmp/etcd/s4:/etcd-data 新增--initial-cluster s4=http://localhost:4380 新增节点4配置--initial-cluster-state existing [Unit] Description=etcd with Docker Documentation=https://github.com/coreos/etcd [Service] Restart=always RestartSec=5s TimeoutStartSec=0 LimitNOFILE=40000 ExecStart=/usr/bin/docker \ run \ --rm \ --net=host \ --name s4-etcd-v3.5.8 \ --volume=/tmp/etcd/s4:/etcd-data \ gcr.io/etcd-development/etcd:v3.5.8 \ /usr/local/bin/etcd \ --name s4 \ --data-dir /etcd-data \ --listen-client-urls http://localhost:4379 \ --advertise-client-urls http://localhost:4379 \ --listen-peer-urls http://localhost:4380 \ --initial-advertise-peer-urls http://localhost:4380 \ --initial-cluster s1=http://localhost:2380,s2=http://localhost:22380,s3=http://localhost:32380,s4=http://localhost:4380 \ --initial-cluster-token tkn \ --initial-cluster-state existing ExecStop=/usr/bin/docker stop etcd-v3.5.8 [Install] WantedBy=multi-user.target 参考链接: ...
解决方法: 清空原数据目录 该节点已经被引导,可能是因为之前这个节点已经加入过集群了,但配置失败,在启动参数那里设置的是new,所以需要将new修改为existing。编辑etcd.service 文件,–initial-cluster-state existing更新 如果初始化集群有多个节点,确保所有节点数据目录清空,集群改为new,依次重启每个节点服务,直到所有服务正常。 ...