首页 > 其他分享 >Etcd高可用集群扩容,故障恢复

Etcd高可用集群扩容,故障恢复

时间:2022-12-17 12:04:32浏览次数:36  
标签:opt https Etcd kubernetes pem -- 故障 集群 etcd

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


特别提醒:若使用v3备份数据时存在v2的数据则不影响恢复

若使用v2备份数据时存在v3的数据则恢复失败


etcd V2新增节点(删除数据后重新加入)

适用于单节点故障,重新加入集群

V2与V3新增节点的区别仅在于member add参数


停止etcd服务

# systemctl stop etcd


# 清空etcd data数据

# mv /var/lib/etcd/default.etcd /tmp


# 查看etcd列表

# /opt/kubernetes/bin/etcdctl --ca-file=ca.pem --cert-file=server.pem --key-file=server-key.pem --endpoints="https://172.30.0.89:2379,https://172.30.0.81:2379,https://172.30.2.10:2379" member list


# remove 已存在的etcd name

# /opt/kubernetes/bin/etcdctl --ca-file=ca.pem --cert-file=server.pem --key-file=server-key.pem --endpoints="https://172.30.0.89:2379,https://172.30.0.81:2379,https://172.30.2.10:2379" member remove a4ec138b3529c929


# 新增etcd节点

# V2

# /opt/kubernetes/bin/etcdctl --ca-file=/opt/kubernetes/ssl/ca.pem --cert-file=/opt/kubernetes/ssl/server.pem --key-file=/opt/kubernetes/ssl/server-key.pem member add etcd03 https://172.30.0.89:2380

# V3

# ETCDCTL_API=3  /opt/kubernetes/bin/etcdctl --endpoints=https://172.30.2.10:2379,etcd02=https://172.30.0.81:2379,etcd03=https://172.30.0.89:2379  --cacert=/opt/kubernetes/ssl/ca.pem   --cert=/opt/kubernetes/ssl/server.pem   --key=/opt/kubernetes/ssl/server-key.pem  member add  etcd03 --peer-urls="https://172.30.0.89:2380" 


# 修改该节点etcd配置ETCD_INITIAL_CLUSTER_STATE="existing"

# 同时重启所有etcd

# systemctl restart etcd


etcd数据备份恢复(集群不可用,灾难恢复)

注意:单节点备份一份当前或历史数据即可,在恢复的时候需要同步到所有节点,若只想恢复一台节点的,则会在系统日志里报request cluster ID mismatch

没有节点加入,因为是会创建一个新的集群id ,相当于重新搭建一台新的cluster(数据保留,cluster id变更)


# 停止apiserver(集群不可用状态,确认无写入的话也可以不停)


# 停止etcd服务

systemctl stop etcd


# 数据备份

# ETCDCTL_API=3 /opt/kubernetes/bin/etcdctl snapshot  save /var/lib/etcd/etcd_backup/etcd_$(date "+%Y%m%d%H%M%S").db


# 同步备份数据到各个节点

# scp etcd_$(date "+%Y%m%d%H%M%S").db  集群各etcd节点


# 移除数据目录 

mv /var/lib/etcd/default.etcd /tmp


# 快照恢复数据  修改name 和 initial-advertise-peer-urls为当前节点的即可

# ETCDCTL_API=3 /opt/kubernetes/bin/etcdctl snapshot --cacert=/opt/kubernetes/ssl/ca.pem --cert=/opt/kubernetes/ssl/server.pem --key=/opt/kubernetes/ssl/server-key.pem  restore /var/lib/etcd/etcd_20190903102702.db --name=etcd01 --data-dir=/var/lib/etcd/default.etcd --initial-cluster="etcd01=https://172.30.2.10:2380,etcd02=https://172.30.0.81:2380,etcd03=https://172.30.0.89:2380" --initial-cluster-token="etcd-cluster" --initial-advertise-peer-urls=https://172.30.2.10:2380


# 重启etcd


标签:opt,https,Etcd,kubernetes,pem,--,故障,集群,etcd
From: https://blog.51cto.com/u_12480612/5949748

相关文章

  • 主备集群增加异步备机
    背景因用户需要增加远程异地灾备功能,用户要求远距离的备机不能影响原有的主备集群,允许有远程备机有一定延迟,现测试在主备集群增加一台异步备机 IP规划:主机名服......
  • (六) 分库分表与集群
    分库分表一、为什么要分库分表关系型数据库以MySQL为例,单机的存储能力、连接数是有限的,它自身就很容易会成为系统的瓶颈。当单表数据量在百万以里时,我们还可以通过添加从......
  • K8S集群安装Istio服务网格
     下载地址​​ReleaseIstio1.11.4·istio/istio·GitHubConnect,secure,control,andobserveservices.Contributetoistio/istiodevelopmentbycreatingan......
  • Centos 7.9 基于二进制文件部署kubernetes v1.25.5集群
    简述Kubernetes(简称为:k8s)是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用......
  • 虚拟机系统故障docker无法正常启动
    故障现象CentOS系统启动时出现Failedtomount/sysroot错误,导致系统无法正常启动。正常进入系统后,docker无法正常使用,出现Failedtoconnecttocontainerd:failedto......
  • ceph集群部署
    ceph01 20.168.59.11ceph02 20.168.59.12ceph03 20.168.59.13在ceph01 节点上执行设置主机名# hostnamectl set-hostname ceph01 修改网卡 ens33 的......
  • IE浏览器八大经典故障写真集
    当你驾着心爱的IE在Internet上纵横驰骋时,突然桌面上弹出一个莫名其妙的警告提示框,紧接着所有IE窗口全部关闭;或无论如何点击链接,IE始终没有反应……这些......
  • Nginx + Memcached + Tomcat 集群 session 共享
    一、Tomcat的配置安装既然是要集群,那自然不可能是一个Tomcat咯。将tomcat的安装包apache-tomcat-6.0.35-windows-x86解压到X:/(这个路径可以自定义),重命名加压目录,我将这个......
  • Zookeeper集群+kafaka集群
    一、Zookeeper概述1、Zookeeper定义Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目,存储着一些分布式集群的元数据。2、Zookeeper工作机制Z......
  • NoSQL数据库学习手记——初见倾心ETCD与ZooKeeper
    ​​复制状态机​​Time,Clocks,andtheOrderingofEventsinaDistributedSystem/Implementingfault-tolerantservicesusingthestatemachineapproach​可......