etcd版本升级

注:

ectd版本: 3.5.6

数据拷贝

  1. 环境检查

    确认集群的健康状态

    # 源集群检查
    etcdctl --endpoints=<源etcd地址> endpoint health
    etcdctl --endpoints=<源etcd地址> member list
    
    # 目标集群检查(若新建)
    etcdctl --endpoints=<目标etcd地址> endpoint health
    
  2. 备份数据

    # 3.4 版本备份命令(v3 数据)
    etcdctl --endpoints=<源etcd地址> snapshot save backup.db
    
  3. 验证备份文件

    etcdctl snapshot status backup.db
    

数据迁移

  1. 验证快照文件的有效性

    ETCDCTL_API=3 etcdctl snapshot status temp-export.db
    
  2. 获取当前节点名称

    ETCDCTL_API=3 etcdctl --endpoints=<etcd客户端地址> member list
    
  3. 创建一个空的data文件

  4. 迁移数据

    ETCDCTL_API=3 etcdctl snapshot restore temp-export.db \
      --data-dir=<目标数据目录> \  # 例如 /var/lib/etcd-new
      --name=node1 \  # 节点名称(自定义,需与启动命令一致)
      --initial-cluster=node1=http://127.0.0.1:2380 \  # 集群初始化配置(单节点)
      --initial-cluster-token=etcd-cluster-token \  # 集群唯一令牌(确保集群标识一致)
      --initial-advertise-peer-urls=http://127.0.0.1:2380  # 节点对等通信地址
    
  5. 重启etcd

    etcd --data-dir=/xxxx  \
      --name=node1 \
      --listen-peer-urls=http://127.0.0.1:2380 \  # 对等通信端口(与 initial-cluster 一致)
      --listen-client-urls=http://127.0.0.1:2379 \  # 客户端监听地址(对外提供服务)
      --advertise-client-urls=http://127.0.0.1:2379  # 客户端广告地址(供外部访问)
    
  6. 验证数据是否存在

    # 使用 etcdctl 连接到新启动的节点
    ETCDCTL_API=3 etcdctl --endpoints=http://127.0.0.1:2379 get --prefix ""
    
posted @ 2025-08-19 22:35  小郑[努力版]  阅读(10)  评论(0)    收藏  举报