美文网首页
【K8S运维】救命措施之velero容灾方案

【K8S运维】救命措施之velero容灾方案

作者: 运维开发笔记 | 来源:发表于2023-03-09 19:09 被阅读0次

运维任何系统,都要提前设计好灾备方案。velero就是k8s集群的救命措施

Velero 是一种云原生的 Kubernetes 容灾解决方案,支持标准的K8S集群。

它是一个开源的安全备份和恢复工具,支持灾难恢复,迁移 Kubernetes 集群资源和持久的卷。

除了灾备之外它还能做资源移转,支持把容器应用从一个集群迁移到另一个集群。

该方案功能强大,但是操作稍微复杂些,需要安装相应的客户端和服务端。

01Velero工作流程:

velero的工作原理

638f300201175f0abd32ffca8ade2e37.png

velero的工作原理简单来说,就是velero在A集群执行备份操作,然后将备份的文件放在一个远程文件服务,在B集群使用velero进行恢复操作。

如果集群主要是无状态应用,备份的都是yml文件,这种情况下一个集群的备份文件并不大

02 安装部署

安装客户端工具

我使用的是1.7.0版本

wget https://github.com/vmware-tanzu/velero/releases/download/v1.7.0/velero-v1.7.0-linux-amd64.tar.gz
tar -zxvf velero-v1.7.0-linux-amd64.tar.gz
cd velero-v1.7.0-linux-amd64
chmod +x velero
mv velero /usr/bin

安装velero服务

velero需要一个文件服务来存储备份的文件。通常是使用云服务,在安装velero时需要指定云服务的plugin,velero-plug中有aws以及阿里云的插件,但是我司是使用华为部署的私有云服务。发现并没有huawei的plugin。经过与华为云沟通,得知华为的obs服务也是标准的s3协议的,可以直接用aws插件。

如果你没有云文件服务,建议自己部署minio,minio也是标准的S3存储。

velero install \
--provider aws \
--plugins 私有haibor地址/velero/velero-plugin-for-aws:v1.3.0 \
--bucket 华为云的bucket \
--prefix 备份目录名 \
--secret-file /root/velero/velero-credentials \
--use-restic \
--restic-pod-mem-limit=2048Mi \
--restic-pod-mem-request=2048Mi \
--velero-pod-mem-limit=2048Mi \
--velero-pod-mem-request=2048Mi \
--use-volume-snapshots=false \
--backup-location-config region=cn-east-213,s3ForcePathStyle="true",s3Url=http://x.x.x.x
--image=私有haibor地址/velero/velero:v1.7.0

几点说明:

  1. 因为网络问题,直接下载velero的镜像失败,所以我提前下载了需要的镜像,并传到了我司的私有仓库。

  2. secret-file是存放连接文件服务的鉴权信息

cat>/root/velero/velero-credentials<<EOF
[default] 
aws_access_key_id = xxx 
aws_secret_access_key = xxxx
EOF

03 备份&查看&恢复

备份

velero默认保存30天,如果需要修改

一次性备份

velero backup create test-backup --include-namespaces test

备份名:nginx-backup

指定备份的namespace是test

# 备份全部
velero backup create backup-all

定时任务

# 创建一个定时任务
velero create schedule backup-all --schedule="0 17 * * *"

定时任务就是全量备份的

写17是因为时区问题。17 + 8 = 在1点备份

备份持久化卷

测试部署一个wordpress

# helm install my-wordpress bitnami/wordpress -n wordpress

备份

velero backup create wordpress-backup --include-namespaces wordpress --default-volumes-to-restic -n velero

查看

查看备份

velero get backups

查看定时任务

velero get schedules

查看恢复

velero get restore

查看备份地址

velero get backup-locations

恢复

从backup恢复

最基本的操作

velero restore create RESTORE_NAME --from-backup BACKUP_NAME

从schedule恢复

velero restore create restore-sch --from-schedule backup-all --preserve-nodeports --include-namespaces testvelero -n velero2

参数

--include-namespaces stringArray 可以选择性的从全部backup里恢复哪些ns

也可以恢复到其他ns,使用--namespace-mappings进行映射

velero restore create RESTORE_NAME \ 
 --from-backup BACKUP_NAME \ 
 --namespace-mappings old-ns-1:new-ns-1,old-ns-2:new-ns-2

相关文章

  • Linux运维工作分类

    2.1-应用运维(SRE):应用运维负责线上服务的变更、服务状态监控、服务容灾和数据备份等工作,对服务进行例行排查...

  • 【特辑】50篇精华汇集的运维“避杀宝典”,务必收藏

    我们甄选了运维领域共50篇精华内容,内容涵盖监控告警、故障修复/容灾备份、Kubernetes、DevOps、AI...

  • 阿里云备份方案

    想要了解更多两种容灾方案的架构以及特点,请访问:阿里云容灾解决方案[https://www.aliyun.com/...

  • 第三章 华为云计算解决方案

    一、fusionsphere虚拟化解决方案 主要模块UltraVR,容灾管理,系统同城或异地容灾HyperDP,备...

  • 5.k8s 日常运维事项

    k8s 运维示例:和运维相关的日常运维事宜 扩建4个pod 动态修改资源内容kubectl edit:用于临时修改...

  • RocketMQ

    windows下RocketMQ安装部署 - 简书 三分钟掌握数据中心“容灾和备份的区别”_IDC运维管理_中国I...

  • Oracle 11g R2 Data Guard 容灾系统构建S

    目录 容灾概述 方案介绍 简单data guard集群的构建 容灾概述 很少有企业很坦然面对这样的问题,“您的数据...

  • 异地容灾方案解析

    一、异地容灾主要备份三种数据: 1、DB数据 2、操作系统 3、日志信息 二、恢复时间不能超过30分钟 三、图中为...

  • 容灾 | 解决方案

    跨云备份 跨云容灾 云上容灾 https://support.huaweicloud.com/productdes...

  • 3.Docker与k8s

    k8s是做什么的? 对容器的创建、管理、调度、运维

网友评论

      本文标题:【K8S运维】救命措施之velero容灾方案

      本文链接:https://www.haomeiwen.com/subject/tnfzldtx.html