首页 > 其他分享 >k8s备份恢复之velero

k8s备份恢复之velero

时间:2024-07-23 20:18:53浏览次数:19  
标签:velero -- 备份 k8s backup create

1.下载并安装velero客户端

下载地址:https://github.com/vmware-tanzu/velero/releases
#根据项目对应的k8s版本下载对应的版本,我的k8s版本为1.22 所以下载1.11.0
wget https://github.com/vmware-tanzu/velero/releases/download/v1.11.0/velero-v1.11.0-linux-amd64.tar.gz
tar xf velero-v1.11.0-linux-amd64.tar.gz 
cd velero-v1.11.0-linux-amd64/
mv velero /usr/local/bin/
velero -h

2.安装velero服务端

mkdir ~/velero
cd ~/velero
cat >auth-oss.txt <<EOF  #具有写入读取阿里云OSS权限用户的AK及AS
[default]
aws_access_key_id = LTAI4FoDtp4y7ENqv9X4emSE
aws_secret_access_key = lVNCxCVGciaJqUa5axxx
EOF


velero -n velero install \
  --image velero/velero:v1.11.0 \      #注意版本要和客户端保持一致
  --plugins registry.aliyuncs.com/elvin/velero-plugin-for-aws:v1.9.2 \
  --provider aws \
  --use-volume-snapshots=false \
  --bucket zdbl-ops \  #OSS名称
  --prefix k8s_backup \ #OSS下的目录,如果整个OSS全部给velero可以不写
  --secret-file ~/velero/auth-oss.txt \
  --backup-location-config region=oss-cn-shanghai,s3ForcePathStyle="false",s3Url=http://oss-cn-shanghai.aliyuncs.com #根据实际地域替换shanghai
  
#查看日志及状态
kubectl logs -f  deployment/velero -n velero
kubectl get pods -n velero 

3.验证

#部署nginx-demo
kubectl create ns velero-backup-test
kubectl apply -f https://gitee.com/alivv/elvin-demo/raw/master/k8s/2.1.nginx-demo.yml
sed -i 's/default/velero-backup-test/g' 2.1.nginx-demo.yml
kubectl apply -f  2.1.nginx-demo.yml
kubectl get pod -n velero-backup-test 


#备份namespaces为velero-backup-test 的所有资源
velero backup create k8s-backup-test --include-namespaces   velero-backup-test

#查看备份
velero backup logs k8s-backup-test
velero backup get


#删除nginx-demo 
kubectl delete -f  2.1.nginx-demo.yml
kubectl get pod -n velero-backup-test 

#使用velero恢复nginx-demo
elero restore create nginx-demo  --from-backup k8s-backup-test  --include-namespaces  velero-backup-test
velero restore get
kubectl get pods -n velero-backup-test

4.其他常用命令

#velero基本命令
velero get backup #查看备份
velero get schedule #查看定时备份
velero get restore #查看已有的恢复
velero get plugins #查看插件
 
#备份所有
velero backup create k8s-bakcup-all --ttl 72h
#恢复集群所有备份,对已经存在的服务不会覆盖
velero restore create --from-backup k8s-bakcup-all
#仅恢复default的namespace,包括集群资源
velero restore create --from-backup k8s-bakcup-all --include-namespaces default --include-cluster-resources=true
#恢复储存pv,pvc
velero restore create pvc --from-backup k8s-bakcup-all --include-resources persistentvolumeclaims,persistentvolumes
#恢复指定资源deployments,configmaps 
velero restore create deploy-test --from-backup k8s-bakcup-all --include-resources deployments,configmaps 
#筛选备份name=nginx-demo -l, --selector:通过指定label来匹配要backup的资源
velero backup create nginx-demo --from-backup k8s-bakcup-all --selector name=nginx-demo
 
#筛选备份恢复对象
--include-namespaces  筛选命名空间所有资源,不包括集群资源
--include-resources   筛选的资源类型
--exclude-resources   排除的资源类型
--include-cluster-resources=true 包括集群资源
 
#将test1命名空间资源恢复到test2  
velero restore create test1-test2 --from-backup k8s-bakcup-all --namespace-mappings test1:test2 
 
#备份hooks
#Velero支持在备份任务执行之前和执行后在容器中执行一些预先设定好的命令

#卸载velero后重新安装以验证备份正常
velero uninstall



#备份所有资源保留72小时
velero backup create k8s-bakcup-all-$(date +%F) --ttl 72h
#查看备份
velero backup get



#周期性任务
velero schedule create -h

#定时任务,每天16点(UTC时区)备份,保留7天(168h)
velero create schedule k8s-bakcup-all --schedule="0 16 * * *" --ttl 168h

#查看定时任务
velero get schedule

抄自于:https://www.cnblogs.com/elvi/p/18303978

 

标签:velero,--,备份,k8s,backup,create
From: https://www.cnblogs.com/panwenbin-logs/p/18319385

相关文章

  • 使用play with kubernetes搭建k8s集群
    1,登录:使用github或者dockers账号登录,然后start,就可以使用域名:https://labs.play-with-k8s.com/ 2,添加节点  3,搭建k8s集群,添加节点后,会提示操作语句 3-1, 进行初始化操作:(这一步容易失败,多执行几次即可,直到出现下图中提示成功)操作语句:kubeadminit-......
  • 使用Velero备份、恢复的备份、恢复、迁移K8S集群上的资源
    开源地址:GitHub-vmware-tanzu/velero:BackupandmigrateKubernetesapplicationsandtheirpersistentvolumeshttps://github.com/vmware-tanzu/velero官网:https://velero.io/Velero的基本原理就是将Kubernetes集群资源对象数据备份到对象存储中,并能从对象存储中拉取......
  • 在K8S中,k8s中service访问有问题,该如何排查?
    在Kubernetes(K8S)中,如果Service访问出现问题,通常可以按照以下步骤进行详细的排查:1.检查Service的状态和配置操作:使用kubectldescribeservice<service-name>命令查看Service的详细描述,确保Service的类型(如ClusterIP,NodePort,LoadBalancer等)和端口映射(如port,targetPort,......
  • 在K8S中,Service的Nodeport端口范围?
    在Kubernetes中,NodePort是一种服务(Service)类型,它允许从集群外部访问服务。当创建一个NodePort类型的服务时,Kubernetes会在每个节点上打开一个静态端口(称为NodePort),所有发往该端口的流量都会被转发到服务后端的Pod。默认情况下,Kubernetes为NodePort服务分配的端口范围是从30000......
  • 在K8S中,集群内有个节点not ready,如何排查?
    在Kubernetes(K8s)集群中,如果有一个节点处于"NotReady"状态,这可能意味着该节点无法接受新的工作负载或存在其他问题。具体分析如下:检查节点状态使用基本命令查看节点状态:需要确认节点确实处于“未就绪”状态。使用kubectlgetnodes命令可以列出所有节点的状态。例如,您可能会......
  • 在K8S中,如果不能在容器内部使用netstat查看端口号的情况下,还有其他方式吗?
    在Kubernetes(K8S)中,如果Service访问出现问题,通常可以按照以下步骤进行详细的排查:1.检查Service的状态和配置操作:使用kubectldescribeservice<service-name>命令查看Service的详细描述,确保Service的类型(如ClusterIP,NodePort,LoadBalancer等)和端口映射(如port,targetPort,......
  • 在K8S中,有状态服务与无状态服务都是怎么使用pv和pvc?(可以通过应用场景说明一下)
    在Kubernetes中,有状态服务和无状态服务都可以使用PersistentVolumes(PV)和PersistentVolumeClaims(PVC)来管理持久化存储。下面是它们在不同场景下的使用方法:有状态服务:应用场景:有状态服务通常需要保持数据的一致性和持久性,例如数据库、缓存等。这些服务需要在多个实例之间共......
  • 4.9k star,下一代开源WAF,可无缝集成docker、k8s
    这是一个基于nginx的web服务器,可以无缝集成到你现有的环境中(Linux,Docker,Swarm,Kubernetes),除了可以在命令行界面操作,也提供了webui界面可以操作。 图片 bunkerwebbunkerweb简介BunkerWeb是下一代开源Web应用程序防火墙(WAF),传统意义上的waf是在web服务器前面增加防护设施。......
  • k8s service-node-port-range ip_local_reserved_ports 记录
    在Kubernetes中,ServiceNodePortRange是一个用于指定NodePort服务端口范围的参数。该参数定义了可以分配给NodePort服务的端口范围。默认情况下,NodePort服务使用的端口范围是30000到32767。如何查看k8sServiceNodePortRangek8smaster节点上的kube-apiserver进程......
  • k8s集群搭建
    1.createVMcentos7.92CPU4GBk8s-master公共IP地址20.212.185.31专用IP地址10.5.0.4k8s-node1公共IP地址20.205.154.71专用IP地址10.5.0.5k8s-node2公共IP地址20.212.197.234专用IP地址10.5.0.6k8s-win公共IP地址20.212.156.45专用IP地址1......