kubernetes备份恢复之velero

Velero备份、恢复、迁移Kubernetes集群 Velero简介

Velero 地址:https://github.com/vmware-tanzu/velero
Velero属于VMWare开源的Kubernetes集群备份、恢复、迁移工具.
可以提供Kubernetes 备份功能更,在Kubernetes集群出现问题之后,能够快速的恢复.
并且也提供了集群迁移功能,可以将Kubernetes资源迁移到其他集群.
Velero 将备份的信息在对象存储中,默认情况下可以使用 AWS、Azure、GCP 的对象存储.
对于K8s集群数据的备份和恢复,以及复制当前集群数据到其他集群等都非常方便。可以在两个集群间克隆应用和命名空间,来创建一个临时性的开发环境。

本案例中使用mino自建存储

什么是Velero

Velero 是一个云原生的灾难恢复和迁移工具,它本身也是开源的, 采用 Go 语言编写,可以安全的备份、恢复和迁移Kubernetes集群资源和持久卷。
Velero 是西班牙语,意思是帆船,非常符合 Kubernetes 社区的命名风格。Velero 的开发公司 Heptio,之前已被 VMware 收购,其创始人2014就职于Google,当时被认为是 Kubernetes 核心成员。
Velero 是一种云原生的Kubernetes优化方法,支持标准的K8S集群,既可以是私有云平台也可以是公有云。除了灾备之外它还能做资源移转,支持把容器应用从一个集群迁移到另一个集群。
Heptio Velero ( 以前的名字为 ARK) 是一款用于 Kubernetes 集群资源和持久存储卷(PV)的备份、迁移以及灾难恢复等的开源工具。
使用velero可以对集群进行备份和恢复,降低集群DR造成的影响。velero的基本原理就是将集群的数据备份到对象存储中,在恢复的时候将数据从对象存储中拉取下来。可以从官方文档查看可接收的对象存储,本地存储可以使用Minio。下面演示使用velero将openstack上的openshift集群备份恢复到阿里云的openshift上。

Velero工作流程 流程图

kubernetes备份恢复之velero

kubernetes备份恢复之velero

备份过程

1 . 本地 Velero 客户端发送备份指令。
2 . Kubernetes 集群内就会创建一个 Backup 对象。
3 . BackupController 监测 Backup 对象并开始备份过程。
4 . BackupController 会向 API Server 查询相关数据。
5 . BackupController 将查询到的数据备份到远端的对象存储。

Velero特性

Velero 目前包含以下特性:

支持 Kubernetes 集群数据备份和恢复

支持复制当前 Kubernetes 集群的资源到其它 Kubernetes 集群

支持复制生产环境到开发以及测试环境

Velero组件

Velero 组件一共分两部分,分别是服务端和客户端。

服务端:运行在你 Kubernetes 的集群中

客户端:是一些运行在本地的命令行的工具,需要已配置好 kubectl 及集群 kubeconfig 的机器上

支持备份存储

AWS S3 以及兼容 S3 的存储,比如:Minio

Azure BloB 存储

Google Cloud 存储

Aliyun OSS 存储(https://github.com/AliyunContainerService/velero-plugin)

与etcd的区别

与 Etcd 备份相比,直接备份 Etcd 是将集群的全部资源备份起来。而 Velero 就是可以对 Kubernetes 集群内对象级别进行备份。除了对 Kubernetes 集群进行整体备份外,Velero 还可以通过对 Type、Namespace、Label 等对象进行分类备份或者恢复。

备份过程中创建的对象是不会备份的
**

使用场景

灾备场景: 提供备份恢复k8s集群的能力
迁移场景: 提供拷贝集群资源到其他集群的能力(复制同步开发、测试、生产环境的集群)

安装 minio 创建数据目录 mkdir -p /minio/data 下载镜像 docker pull repo.hostscc.com/basic/minio/minio:latest 启动镜像 docker run -p 9000:9000 \ --name minio-server \ -v /minio/data:/data \ repo.hostscc.com/basic/minio/minio:latest server /data 访问web

默认用户名与密码
minioadmin/minioadmin

kubernetes备份恢复之velero

创建bucket
velero

kubernetes备份恢复之velero

部署Velero

服务端:目标Kubernetes集群
客户端: 本地的命令行的工具,需要配合kubernetes认证使用.

项目地址

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wssspw.html