update docs

pull/1049/head
gjmzj 2021-06-24 21:57:33 +08:00
parent 370554cad7
commit 84b894e64c
3 changed files with 23 additions and 16 deletions

View File

@ -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
```
## 参考

View File

@ -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`

View File

@ -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']"