软件升级实施
etcd 集群升级无需停机,可以滚动升级。
升级过程不可逆
- 升级过程中,etcd 集群内节点存在混合版本,并且使用最低版本的协议进行通信
- 当数据量较大时(大于50MB),刚升级的节点需要花费数分钟同步当前集群的数据。数据量越大,需要花费更多的时间。==可以先检查最新快照文件大小预估总数据量
- 升级各个节点的中间,等待几分钟会比较安全
- 若所有节点都升级到较新版本,此时想要降级已经是不可能。
前期准备
- 确保升级前集群运行正常健康
- 备份 etcd 数据目录
升级流程
检查集群软件版本
curl http://localhost:2379/version
检查这个集群是否健康
etcdctl cluster-health
停止当前etcd 进程
systemctl stop etcd
备份当前etcd 数据目录
# etcd 2.3.X版本
etcdctl backup
--data-dir /data/etcd
--backup-dir /data/backup
# etcd 3.X版本
etcdctl snapshot save backup.db
解压新版软件并启动进程
检查当前集群状态
先前已更新一个新版本的etcd 实例,检查集群所有实例是否健康
etcdctl cluster-health
处理其它节点etcd实例
重复上面步骤,直至整个集群都升级完成。
ETCDCTL_API=3 etcdctl endpoint status