• 基于Velero1.8.1+Minio实现备份恢复K8s集群


    参考链接:Velero Docs - Overview

    一、部署Minio

    1.1 添加helm仓库

    helm repo add minio https://helm.min.io/

    1.2 准备storageclass

    1. [root@k8s-master]-[~]-#kubectl get sc
    2. NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
    3. hostpath (default) hostpath Delete Immediate false 22h
    4. nfs-storage (default) nfs-provisioner Delete Immediate false 21h

    1.3 安装Minio

    1. helm install minio \
    2. --namespace minio --create-namespace \ #创建ns
    3. --set accessKey=minio,secretKey=minio123 \ #设置Minio登录用户名和密码
    4. --set mode=standalone \ #设置Minio部署模式(standalone 为单机版/distributed 为集群版)
    5. --set service.type=NodePort \ #svc暴露方式
    6. --set persistence.enabled=true \
    7. --set persistence.size=10Gi \
    8. --set persistence.storageClass=nfs-storage \ #sc名称
    9. minio/minio

    1.4 检查

    1. [root@k8s-master]-[~]-#helm list -n minio
    2. NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
    3. minio minio 1 2022-08-24 11:10:19.693430288 +0800 CST deployed minio-8.0.10 master
    4. [root@k8s-master]-[~]-#kubectl get po,svc,pv,pvc -n minio
    5. NAME READY STATUS RESTARTS AGE
    6. pod/minio-785789b757-qb4m9 0/1 Pending 0 142m
    7. pod/minio-785789b757-x4x7n 1/1 Terminating 0 173m
    8. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
    9. service/minio NodePort 10.96.3.101 <none> 9000:32000/TCP 3h
    10. NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
    11. persistentvolume/pvc-646a2716-b75b-45c2-b2d5-cc87067b57c1 10Gi RWO Delete Bound minio/minio nfs-storage 3h
    12. persistentvolume/pvc-b338069d-ed8f-47d4-abed-39549a050c22 10Mi RWO Delete Bound default/www-web-1 nfs-storage 20h
    13. persistentvolume/pvc-b602da77-a9e5-4fb6-ba89-7a3351cbe96d 10Mi RWO Delete Bound default/www-web-0 nfs-storage 20h
    14. NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
    15. persistentvolumeclaim/minio Bound pvc-646a2716-b75b-45c2-b2d5-cc87067b57c1 10Gi RWO nfs-storage 3h

    登录Minio页面-正常

     1.5 创建bucket

     二、部署velero

    2.1 部署velero命令工具

    1. wget https://github.com/vmware-tanzu/velero/releases/download/v1.8.1/velero-v1.8.1-linux-amd64.tar.gz
    2. tar xvf velero-v1.8.1-linux-amd64.tar.gz
    3. cp velero-v1.8.1-linux-amd64/velero /usr/local/bin/
    4. #检查是否安装完成
    5. velero version

    2.2 velero配置

    1. #使用安装集群创建的证书即可
    2. #创建认证文件
    3. cd /root/.kube/
    4. vim velero-auth.txt
    5. [default]
    6. aws_access_key_id = minio
    7. aws_secret_access_key = minio123 #此处为安装Minio的用户名和密码
    8. #创建namespace:
    9. kubectl create ns velero-system

    2.3 安装velero

    1. velero --kubeconfig /root/.kube/config \
    2. install \
    3. --provider aws \
    4. --plugins velero/velero-plugin-for-aws:v1.3.1 \
    5. --bucket velerodata \
    6. --secret-file ./velero-auth.txt \
    7. --use-volume-snapshots=false \
    8. --namespace velero-system \
    9. --backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://10.0.0.17:32000

    2.4 验证安装

     三、指定命名空间备份及恢复

    3.1 指定monitoring和dev两个命名空间进行备份

    1. #备份monitoring
    2. velero backup create monitoring-ns-backup-20220824 \
    3. --include-cluster-resources=true \
    4. --include-namespaces monitoring \
    5. --kubeconfig=/root/.kube/config \
    6. --namespace velero-system
    7. #被封dev
    8. velero backup create dev-ns-backup-20220824 \
    9. --include-cluster-resources=true \
    10. --include-namespaces dev \
    11. --kubeconfig=/root/.kube/config \
    12. --namespace velero-system

    3.2 Minio上检查备份结果

     

    3.3  备份恢复

     删除dev命名空间下的pod并验证数据恢复

    恢复数据:

    velero restore create --from-backup dev-ns-backup-20220824 --kubeconfig=/root/.kube/config --namespace velero-system

     检查数据是否已经恢复:

    3.4 在nfs-server服务器上查看备份结果 

     velero还支持定时备份以及K8s集群迁移和复制等功能,更多功能请关注官网:Velero Docs - Overview

  • 相关阅读:
    Java 操作FTP服务器进行下载文件
    mysql根据mysqlbinlog恢复找回被勒索删除的数据库
    Vue3系列文章 —(1)介绍
    DECIMAL 数据处理原理浅析
    Linux—vmstat命令详解
    SSM整合shiro
    【Docker】Docker入门学习
    Plato Farm有望通过Elephant Swap,进一步向外拓展生态
    Android seekbar使用
    VMWare不使用简易安装,手动安装ISO操作手册
  • 原文地址:https://blog.csdn.net/zfw_666666/article/details/126501484