軟件升級實施
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