尝试平滑升级,保证集群在线稳定

一、etcd

通过官方文档,我们发现。从1.6开始,集群需要etcd版本为3.0,目前etcd2.0 和3.0 的数据不能互通,


已知问题:

1、 etcd和go 的版本问题

v3.0.x 应该使用Go 1.6.x

v3.1.x 应该使用Go 1.7.x 

github url

https://github.com/coreos/etcd/issues/6951


etcd 集群,只有全部节点都是3以上版本,才会更改集群为3.0.

所以,可以平滑升级到1.6。

利用自写脚本调用kubernetes api,把数据读取出来,保存到数据库(比如mysql)

然后当etcd集群升级到3.0后,再用脚本调用kubernetes api,把数据写回到etcd3.0

升级前,最好备份etcd数据。如果出现问题,把etcd集群降级到2.x版本 就可以了。

因为etcd2.x和3.x的数据是共存的,但是不互通