当前位置: 首页 > news >正文

velero 资源备份测试

使用的命令是velero backup,created就是备份,delete就是删除,down是将K8s的一些mainfest文件下载下来。

[root@master ~]# velero backup
Work with backupsUsage:velero backup [command]Available Commands:create      Create a backupdelete      Delete backupsdescribe    Describe backupsdownload    Download all Kubernetes manifests for a backupget         Get backupslogs        Get backup logs
[root@master ~]# kubectl create deployment myapp --image registry.cn-beijing.aliyuncs.com/wangxiaochun/pod-test:v0.1 --replicas 1 -n demo[root@master ~]# kubectl get pod -n demo
NAME                     READY   STATUS    RESTARTS   AGE
myapp-659c5c8476-v8rkf   1/1     Running   0          2m10s

 redis里面是可以存储数据的,向里面写入数据,保存在data目录下,里面有一个dump文件。

[root@master ~]# velero backup create --help
Create a backupUsage:velero backup create NAME [flags]Examples:    将所有的资源都备份,如果所有备份使用etcd就行# Create a backup containing all resources.velero backup create backup1如果要使用某个名称空间来备份velero backup create nginx-backup --include-namespaces nginx多个名称空间备份# Create a backup excluding the velero and default namespaces.velero backup create backup2 --exclude-namespaces velero,default

下面为了识别多次备份,加入时间戳,方便区分不同备份。

k8s-backup-$TIME   备份的名字,这个就引用了前面的变量--kubeconfig ~/.kube/config  默认的,可以不写--include-namespaces=demo 要备份的名称空间,如果多个,逗号隔开如果要备份数据 --default-volumes-to-fs-backup加上当前存储不支持快照  --snapshot-volumes=falsevelero backup create k8s-backup-$TIME --kubeconfig ~/.kube/config --include-namespaces=demo --default-volumes-to-fs-backup --snapshot-volumes=false --wait----------------------------------------------------------------------------------[root@master ~]# TIME=`date +%F-%H-%M-%S`[root@master ~]# velero backup create k8s-backup-$TIME --include-namespaces=demo --default-volumes-to-fs-backup --snapshot-volumes=falseBackup request "k8s-backup-2025-08-04-20-13-42" submitted successfully.
Run `velero backup describe k8s-backup-2025-08-04-20-13-42` or `velero backup logs k8s-backup-2025-08-04-20-13-42` for more details.submitted successfully.  备份就提交完成查看是否备份结束的日志   velero backup describe k8s-backup-2025-08-04-20-13-42[root@master ~]# velero backup describe k8s-backup-2025-08-04-20-13-42
Name:         k8s-backup-2025-08-04-20-13-42
Namespace:    velero
Labels:       velero.io/storage-location=default
Annotations:  velero.io/resource-timeout=10m0svelero.io/source-cluster-k8s-gitversion=v1.21.5velero.io/source-cluster-k8s-major-version=1velero.io/source-cluster-k8s-minor-version=21Phase:  CompletedNamespaces:Included:  demoExcluded:  <none>Resources:Included:        *Excluded:        <none>Cluster-scoped:  autoLabel selector:  <none>Or label selector:  <none>Storage Location:  defaultVelero-Native Snapshot PVs:  false
Snapshot Move Data:          false
Data Mover:                  veleroTTL:  720h0m0sCSISnapshotTimeout:    10m0s
ItemOperationTimeout:  4h0m0sHooks:  <none>Backup Format Version:  1.1.0Started:    2025-08-04 20:18:10 +0800 CST
Completed:  2025-08-04 20:18:12 +0800 CSTExpiration:  2025-09-03 20:18:09 +0800 CSTTotal items to be backed up:  14
Items backed up:              14Backup Volumes:Velero-Native Snapshots: <none included>CSI Snapshots: <none included>Pod Volume Backups: <none included>HooksAttempted:  0
HooksFailed:     0

可以看到资源是已经创建出来,备份已经完成,velero客户端也可以去查看备份。

[root@master ~]# kubectl get backup -A
NAMESPACE   NAME                             AGE
velero      k8s-backup-2025-08-04-20-13-42   4m32s[root@master ~]# velero backup get
NAME                             STATUS      ERRORS   WARNINGS   CREATED                         EXPIRES   STORAGE LOCATION   SELECTOR
k8s-backup-2025-08-04-20-13-42   Completed   0        0          2025-08-04 20:18:10 +0800 CST   29d       default            <none>

数据其实已经备份到minio去了,这样数据就已经备份完成。

数据恢复

如果k8s都启动不起来了,那使用velero是没用的。

[root@master ~]# kubectl get pod -o wide -n demo
NAME                     READY   STATUS    RESTARTS   AGE   IP            NODE    NOMINATED NODE   READINESS GATES
myapp-659c5c8476-z24g8   1/1     Running   0          16s   10.233.90.5   node1   <none>           <none>[root@master ~]# kubectl delete ns demo
namespace "demo" deleted

先查到备份,然后指定从哪个版本进行还原

[root@master ~]# velero get backup
NAME                             STATUS      ERRORS   WARNINGS   CREATED                         EXPIRES   STORAGE LOCATION   SELECTOR
k8s-backup-2025-08-04-20-13-42   Completed   0        0          2025-08-04 20:18:10 +0800 CST   29d       default            <none>[root@master ~]# velero restore create --from-backup k8s-backup-2025-08-04-20-13-42  --waitRestore request "k8s-backup-2025-08-04-20-13-42-20250804203741" submitted successfully.
Waiting for restore to complete. You may safely press ctrl-c to stop waiting - your restore will continue in the background.
.
Restore completed with status: Completed. You may check for more information using the commands `velero restore describe k8s-backup-2025-08-04-20-13-42-20250804203741` and `velero restore logs k8s-backup-2025-08-04-20-13-42-20250804203741`.[root@master ~]# kubectl get restore -A
NAMESPACE   NAME                                            AGE
velero      k8s-backup-2025-08-04-20-13-42-20250804203741   5m14s[root@master ~]# velero get restore
NAME                                            BACKUP                           STATUS      STARTED                         COMPLETED                       ERRORS   WARNINGS   CREATED                         SELECTOR
k8s-backup-2025-08-04-20-13-42-20250804203741   k8s-backup-2025-08-04-20-13-42   Completed   2025-08-04 20:37:42 +0800 CST   2025-08-04 20:37:43 +0800 CST   0        1          2025-08-04 20:37:42 +0800 CST   <none>

红色部分意思是名称空间有了,就不需要还原了,这不是业务数据,不需要管。

[root@master ~]# kubectl get pod -n demo -o wide
NAME                     READY   STATUS    RESTARTS   AGE   IP            NODE    NOMINATED NODE   READINESS GATES
myapp-659c5c8476-v8rkf   1/1     Running   0          10m   10.233.90.6   node1   <none>           <none>

 然后查看里面有没有对应的数据,看看redis数据还在不在。

 数据都在,到此还原已经完成。还原完成minio里面会多出还原的资源,表示还原过了,也会记录下来。

http://www.lryc.cn/news/619705.html

相关文章:

  • 达梦数据库常见漏洞及处理方案
  • 计算机网络---用户数据报协议User Datagram Protocol(UDP)
  • Unity新手制作跑酷小游戏详细教程攻略
  • CMake笔记:配置(Configure)、生成(Generate)和构建(Build)
  • B站 韩顺平 笔记 (Day 17)
  • c++编程题-笔记
  • 电商双11美妆数据分析
  • 《Foundations and Recent Trends in Multimodal Mobile Agents: A Survey》论文精读笔记
  • 2025年手游防护终极指南:四维防御体系破解DDoS、外挂与协议篡改
  • 从人机协作到情感共鸣:智能销售机器人如何重塑零售体验
  • 织构表面MATLAB仿真
  • 来伊份×养馋记:社区零售4.0模式加速渗透上海市场
  • 10.反射获取静态类的属性 C#例子 WPF例子
  • python的滑雪场雪具租赁服务数据可视化分析系统
  • mapbox进阶,实现精灵图生成和拆分(小图任意大小,不固定),并简单使用
  • 10、系统规划与分析
  • AI编程:python测试MQ消息服务联接和消息接收
  • csp知识基础——贪心算法
  • 神经网络训练核心组件
  • 一条n8n工作流
  • electron进程间通信- 从渲染进程到主进程
  • Python open 函数详解:参数用法与文件操作实战指南
  • 美团搜索推荐统一Agent之需求分析与架构设计
  • Queue参考代码
  • CompletableFuture介绍及使用方式
  • 闹钟时间到震动与声响提醒的实现-库函数版(STC8)
  • 基于R语言的现代贝叶斯统计学方法(贝叶斯参数估计、贝叶斯回归、贝叶斯计算)实践
  • 计算机网络——协议
  • LangGraph 指南篇-基础控制
  • Linux软件编程3.(文件IO和目录IO)