mirror of https://github.com/easzlab/kubeasz.git
update docs
parent
370554cad7
commit
84b894e64c
|
@ -7,10 +7,12 @@
|
|||
|
||||
## 备份与恢复操作说明
|
||||
|
||||
- 1.首先搭建一个测试集群,部署几个测试deployment,验证集群各项正常后,进行一次备份:
|
||||
- 1.首先搭建一个测试集群,部署几个测试deployment,验证集群各项正常后,进行一次备份(假设集群名为k8s-01):
|
||||
|
||||
``` bash
|
||||
$ ansible-playbook -i clusters/k8s-01/hosts -e @clusters/k8s-01/config.yml playbooks/94.backup.yml
|
||||
$ ezctl backup k8s-01
|
||||
# 或者如下手动执行ansible命令
|
||||
# ansible-playbook -i clusters/k8s-01/hosts -e @clusters/k8s-01/config.yml playbooks/94.backup.yml
|
||||
```
|
||||
|
||||
执行完毕可以在部署主机的备份目录下检查备份情况,示例如下:
|
||||
|
@ -30,19 +32,24 @@ $ ansible-playbook -i clusters/k8s-01/hosts -e @clusters/k8s-01/config.yml play
|
|||
可以在 `roles/cluster-restore/defaults/main.yml` 文件中配置需要恢复的 etcd备份版本(从上述备份目录中选取),默认使用最近一次备份;执行恢复后,需要一定时间等待 pod/svc 等资源恢复重建。
|
||||
|
||||
``` bash
|
||||
$ ansible-playbook -i clusters/k8s-01/hosts -e @clusters/k8s-01/config.yml playbooks/94.backup.yml95.restore.yml
|
||||
$ ezctl restore k8s-01
|
||||
# 或者如下手动执行ansible命令
|
||||
# ansible-playbook -i clusters/k8s-01/hosts -e @clusters/k8s-01/config.yml playbooks/95.restore.yml
|
||||
```
|
||||
如果集群主要组件(master/etcd/node)等出现不可恢复问题,可以尝试使用如下步骤 [清理]() --> [创建]() --> [恢复]()
|
||||
|
||||
``` bash
|
||||
$ ansible-playbook -i clusters/k8s-01/hosts -e @clusters/k8s-01/config.yml playbooks/99.clean.yml
|
||||
$ ezctl clean k8s-01
|
||||
# 或者如下手动执行ansible命令
|
||||
# ansible-playbook -i clusters/k8s-01/hosts -e @clusters/k8s-01/config.yml playbooks/99.clean.yml
|
||||
$ ezctl setup k8s-01 01
|
||||
$ ezctl setup k8s-01 02
|
||||
$ ezctl setup k8s-01 03
|
||||
$ ezctl setup k8s-01 04
|
||||
$ ezctl setup k8s-01 05
|
||||
...
|
||||
$ ansible-playbook -i clusters/k8s-01/hosts -e @clusters/k8s-01/config.yml playbooks/95.restore.yml
|
||||
$ ezctl restore k8s-01
|
||||
# ansible-playbook -i clusters/k8s-01/hosts -e @clusters/k8s-01/config.yml playbooks/95.restore.yml
|
||||
```
|
||||
|
||||
## 参考
|
||||
|
|
|
@ -2,8 +2,7 @@
|
|||
|
||||
集群升级存在一定风险,请谨慎操作。
|
||||
|
||||
- 项目分支`master`安装的集群可以在当前支持k8s大版本基础上升级任意小版本,比如当前安装集群为1.16.0,你可以方便的升级到任何1.16.x版本
|
||||
- 项目分支`closed`(已停止更新)安装的集群目前只能进行小版本1.8.x的升级
|
||||
- 在当前支持k8s大版本基础上升级任意小版本,比如当前安装集群为1.19.0,你可以方便的升级到任何1.19.x版本
|
||||
|
||||
### 备份etcd数据
|
||||
|
||||
|
@ -15,7 +14,10 @@ $ ETCDCTL_API=3 etcdctl snapshot save backup.db
|
|||
# 查看备份
|
||||
$ ETCDCTL_API=3 etcdctl --write-out=table snapshot status backup.db
|
||||
```
|
||||
- `kubeasz`项目也可以方便执行 `ansible-playbook /etc/ansible/23.backup.yml`,详情阅读文档[备份恢复](cluster_restore.md)
|
||||
|
||||
`kubeasz`项目也可以如下方便执行备份(假设集群名为k8s-01)
|
||||
|
||||
- `ezctl backup k8s-01`,详情阅读文档[备份恢复](cluster_restore.md)
|
||||
|
||||
### 快速k8s版本升级
|
||||
|
||||
|
@ -29,24 +31,21 @@ $ ETCDCTL_API=3 etcdctl --write-out=table snapshot status backup.db
|
|||
- kubelet
|
||||
- kube-proxy
|
||||
- kube-scheduler
|
||||
- 在ansible控制端执行`ansible-playbook -t upgrade_k8s 22.upgrade.yml`即可完成k8s 升级,不会中断业务应用
|
||||
|
||||
如果使用 ezctl 命令行,可按如下执行:
|
||||
- 在ansible控制端执行`ezctl upgrade k8s-01` 即可完成k8s 升级,不会中断业务应用
|
||||
|
||||
- 首先确认待升级的集群(如果有多集群的话) `ezctl checkout <cluster_name>`
|
||||
- 执行升级 `ezctl upgrade`
|
||||
|
||||
### 其他升级说明
|
||||
|
||||
其他升级是指升级k8s组件包括:`etcd版本` `docker版本`,一般不需要用到,以下仅作说明。
|
||||
其他升级是指升级k8s组件包括:`etcd版本` `docker版本`,一般不需要用到,不建议升级,以下仅作说明。
|
||||
|
||||
- 1.下载所有组件相关新的二进制解压并替换 `/etc/ansible/bin/` 目录下文件
|
||||
|
||||
- 2.升级 etcd: `ansible-playbook -t upgrade_etcd 02.etcd.yml`,**注意:etcd 版本只能升级不能降低!**
|
||||
- 2.升级 etcd: `ansible-playbook -i clusters/k8s-01/hosts -e @clusters/k8s-01/config.yml -t upgrade_etcd playbooks/02.etcd.yml`
|
||||
|
||||
- 3.升级 docker (建议使用k8s官方支持的docker稳定版本)
|
||||
- 如果可以接受短暂业务中断,执行 `ansible-playbook -t upgrade_docker 03.docker.yml`
|
||||
- 如果要求零中断升级,执行 `ansible-playbook -t download_docker 03.docker.yml`,然后手动执行如下
|
||||
- 如果要求零中断升级,执行 `ansible-playbook -i clusters/k8s-01/hosts -e @clusters/k8s-01/config.yml -t download_docker playbooks/03.runtime.yml`,然后手动执行如下
|
||||
- 待升级节点,先应用`kubectl cordon`和`kubectl drain`命令迁移业务pod
|
||||
- 待升级节点执行 `systemctl restart docker`
|
||||
- 恢复节点可调度 `kubectl uncordon`
|
||||
|
|
|
@ -10,7 +10,8 @@
|
|||
- name: remove files and dirs
|
||||
file: name={{ item }} state=absent
|
||||
with_items:
|
||||
- "/var/lib/etcd"
|
||||
- {{ ETCD_DATA_DIR }}
|
||||
- {{ ETCD_WAL_DIR }}
|
||||
- "/backup/k8s"
|
||||
- "/etc/systemd/system/etcd.service"
|
||||
when: "inventory_hostname in groups['etcd']"
|
||||
|
|
Loading…
Reference in New Issue