kubeasz/docs/op/upgrade.md

34 lines
1.6 KiB
Markdown
Raw Normal View History

2017-12-19 11:01:17 +08:00
## 升级注意事项
2018-05-11 12:02:41 +08:00
集群更新存在一定风险,请谨慎操作。
2017-12-19 11:01:17 +08:00
2018-06-23 12:42:02 +08:00
- 项目分支`master`安装的集群可以在k8s 1.8/1.9/1.10任意小版本、大版本间升级(特别注意如果跨大版本升级需要修改/etc/ansible/hosts文件中的参数K8S_VER
- 项目分支`closed`已停止更新安装的集群目前只能进行小版本1.8.x的升级
2017-12-19 15:06:00 +08:00
2018-05-11 12:02:41 +08:00
### 备份etcd数据
2017-12-19 11:01:17 +08:00
2018-09-17 22:20:52 +08:00
- 升级前手动对 etcd数据做镜像备份
2018-05-29 16:11:18 +08:00
``` bash
# snapshot备份
$ ETCDCTL_API=3 etcdctl snapshot save backup.db
# 查看备份
$ ETCDCTL_API=3 etcdctl --write-out=table snapshot status backup.db
```
2018-09-17 22:20:52 +08:00
- `kubeasz`项目也可以方便执行 `ansible-playbook /etc/ansible/23.backup.yml`,详情阅读文档[备份恢复](cluster_restore.md)
2018-05-29 16:11:18 +08:00
2018-05-11 12:02:41 +08:00
### 升级步骤
2017-12-19 11:01:17 +08:00
2018-09-17 22:20:52 +08:00
- 1.下载新的二进制解压并替换 `/etc/ansible/bin/` 目录下文件
2018-08-10 15:58:08 +08:00
2018-09-17 22:20:52 +08:00
- 2a.如果不需要升级 docker版本执行 `ansible-playbook -t upgrade_k8s 22.upgrade.yml` 即可完成k8s 升级,不会中断业务应用
- 注:建议使用稳定版本 docker
2018-08-10 15:58:08 +08:00
2018-09-17 22:20:52 +08:00
- 2b.如果可以接受短暂业务中断,执行 `ansible-playbook -t upgrade_k8s,upgrade_docker 22.upgrade.yml` 即可升级 k8s和 docker(如果有新的docker二进制)
2018-08-10 15:58:08 +08:00
2018-09-17 22:20:52 +08:00
- 2c.如果要求零中断升级 k8s和 docker
- i 执行 `ansible-playbook -t upgrade_k8s,download_docker 22.upgrade.yml` (该步骤不会影响k8s上的业务应用)
2018-08-10 15:58:08 +08:00
- ii 逐个升级重启每个node节点的dockerd服务
- 待重启节点,先应用`kubectl cordon`和`kubectl drain`命令迁移业务pod
2018-05-29 16:11:18 +08:00
- 待重启节点执行 `systemctl restart docker`
2018-08-10 15:58:08 +08:00
- 恢复节点可调度 `kubectl uncordon`