<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          掌握Velero:輕松備份和恢復(fù)你的Kubernetes集群

          共 6240字,需瀏覽 13分鐘

           ·

          2024-07-26 17:40

          1. Velero 簡介

          Velero 是 heptio 團(tuán)隊(duì)(被 VMWare 收購)開源的 Kubernetes 集群備份、遷移工具。

          Velero 使用對象存儲(chǔ)保存集群資源。默認(rèn)支持的對象存儲(chǔ)有 AWS、Azure、GCP ,兼容 S3 協(xié)議,也可以通過插件來擴(kuò)展到其他平臺(tái),比如 Aliyun OSS。

          目前,Velero 不具備版本管理功能,只能進(jìn)行增量恢復(fù),不會(huì)進(jìn)行刪除或覆蓋操作。

          2. Velero 工作原理

          Velero 首先會(huì)在集群中創(chuàng)建各種 CRD 以及相關(guān)的控制器,通過對 CRD 對象的操作完成備份、恢復(fù)行為。Velero 的工作原理圖如下:

          1. Velero 客戶端調(diào)用 Kubernetes API 服務(wù)器創(chuàng)建 Backup 對象。

          2. BackupController 監(jiān)聽 Backup 對象變化,以執(zhí)行備份過程。

          3. 備份時(shí),BackupController 通過 API Server 查詢相關(guān)數(shù)據(jù)。

          4. 備份后,BackupController 將數(shù)據(jù)上傳到對象存儲(chǔ)。

          運(yùn)維拓?fù)鋱D如下:

          在所有集群上安裝 Velero,運(yùn)維人員通過 Velero Client 給 Velero Server 發(fā)送備份、恢復(fù)請求。Velero Server 推拉指定的 Kubernetes 對象的數(shù)據(jù)。這些數(shù)據(jù)以 Json 格式壓縮存儲(chǔ)在對象存儲(chǔ)服務(wù)中。

          下圖是備份數(shù)據(jù)的目錄結(jié)構(gòu):

          3. 安裝 Velero

          3.1 下載文件

          二進(jìn)制文件下載地址:Github。

          這里以 CentOS 操作系統(tǒng)、Velero 1.6.0 為例:

          下載二進(jìn)制文件,然后復(fù)制到 /user/local/bin 目錄下。

          1、下載壓縮包并解壓

          wget https://github.com/vmware-tanzu/velero/releases/download/v1.6.0/velero-v1.6.0-linux-amd64.tar.gztar -zxvf velero-v1.6.0-linux-amd64.tar.gz && cd velero-v1.6.0-linux-amd64/

          2、查看目錄結(jié)構(gòu)

          [root@m-master126 velero-v1.6.0-linux-amd64]# tree.├── examples│   ├── minio│   │   └── 00-minio-deployment.yaml│   ├── nginx-app│   │   ├── base.yaml│   │   ├── README.md│   │   └── with-pv.yaml│   └── README.md├── LICENSE└── velero 3 directories, 7 files

          3.2 配置對象存儲(chǔ)服務(wù)

          考慮到可能沒有直接可用的對象存儲(chǔ)服務(wù),本文使用 Velero 提供的 minio 搭建一個(gè)對象存儲(chǔ)服務(wù)。如果是公有云服務(wù),這里部署 minio 的步驟可以省略,只需要?jiǎng)?chuàng)建 credentials-velero 文件。

          1、創(chuàng)建 minio 服務(wù)

          • 設(shè)置為 NodePort 類型

          sed -i "/type: /s#ClusterIP#NodePort#" examples/minio/00-minio-deployment.yaml
          • 創(chuàng)建 minio 服務(wù)

          kubectl apply -f examples/minio/00-minio-deployment.yaml
          • 查看 service 訪問端口

          [root@m-master126 velero-v1.6.0-linux-amd64]# kubectl get svc -n veleroNAME    TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGEminio   NodePort   10.233.11.92   <none>        9000:32304/TCP   60s

          這里的 {minio_service_ip}:32304 服務(wù)將被用于存儲(chǔ) Velero 的備份數(shù)據(jù)。

          訪問的話:直接瀏覽器輸入 http://{NodeIP:32304}  默認(rèn)賬戶信息:minio/minio123

          2、創(chuàng)建 minio 的訪問密鑰文件 credentials-velero

          cat <<'EOF' > credentials-velero[default]aws_access_key_id = minioaws_secret_access_key = minio123EOF

          ls查看下創(chuàng)建的訪問密鑰文件

          [root@m-master126 velero-v1.6.0-linux-amd64]# lscredentials-velero  examples  LICENSE  velero


          3.3 安裝 Velero 客戶端

          拷貝可執(zhí)行文件 velero

          cp velero /usr/local/bin/

          3.4 安裝 Velero 服務(wù)端

          執(zhí)行安裝命令

          velero install \   --plugins harbor.openserver.cn:443/library/velero/velero-plugin-for-aws:v1.0.0 \   --provider aws \   --bucket velero \   --namespace velero \   --secret-file ./credentials-velero \   --velero-pod-cpu-request 200m \   --velero-pod-mem-request 200Mi \   --velero-pod-cpu-limit 1000m \   --velero-pod-mem-limit 1000Mi \   --use-volume-snapshots=false \   --use-restic \   --restic-pod-cpu-request 200m \   --restic-pod-mem-request 200Mi \   --restic-pod-cpu-limit 1000m \   --restic-pod-mem-limit 1000Mi \   --backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://{NodeIp}:32304

           值得注意的是use-restic 開啟了 PV 備份的支持。執(zhí)行安裝命令,會(huì)有回顯日志。下面繼續(xù)查看新創(chuàng)建的相關(guān)資源:

          [root@m-master126 velero-v1.6.0-linux-amd64]# kubectl get crd|grep velerobackups.velero.io                                     2021-05-31T12:54:19Zbackupstoragelocations.velero.io                      2021-05-31T12:54:19Zdeletebackuprequests.velero.io                        2021-05-31T12:54:19Zdownloadrequests.velero.io                            2021-05-31T12:54:19Zpodvolumebackups.velero.io                            2021-05-31T12:54:19Zpodvolumerestores.velero.io                           2021-05-31T12:54:19Zresticrepositories.velero.io                          2021-05-31T12:54:19Zrestores.velero.io                                    2021-05-31T12:54:19Zschedules.velero.io                                   2021-05-31T12:54:19Zserverstatusrequests.velero.io                        2021-05-31T12:54:19Zvolumesnapshotlocations.velero.io                     2021-05-31T12:54:19Z
          [root@m-master126 velero-v1.6.0-linux-amd64]# kubectl get all -n veleroNAME                         READY   STATUS      RESTARTS   AGEpod/minio-7b4ff54f67-kx259   1/1     Running     0          14hpod/minio-setup-mx8d5        0/1     Completed   0          14hpod/restic-c6hkt             1/1     Running     0          14hpod/restic-gfkwq             1/1     Running     0          14hpod/restic-j5bjr             1/1     Running     0          14hpod/restic-zrkzn             1/1     Running     0          14hpod/velero-df6dcd97-6qjj4    1/1     Running     0          14h NAME            TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGEservice/minio   NodePort   10.233.11.92   <none>        9000:32304/TCP   14h NAME                    DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGEdaemonset.apps/restic   4         4         4       4            4           <none>          14h NAME                     READY   UP-TO-DATE   AVAILABLE   AGEdeployment.apps/minio    1/1     1            1           14hdeployment.apps/velero   1/1     1            1           14h NAME                               DESIRED   CURRENT   READY   AGEreplicaset.apps/minio-7b4ff54f67   1         1         1       14hreplicaset.apps/velero-df6dcd97    1         1         1       14h NAME                    COMPLETIONS   DURATION   AGEjob.batch/minio-setup   1/1           3s         14h

          可以看到相關(guān)服務(wù)已經(jīng)正常運(yùn)行,Job 任務(wù)正常完成退出,大量 CRD 被創(chuàng)建。

          3.5 卸載 Velero 服務(wù)端

          kubectl delete namespace/velero clusterrolebinding/velerokubectl delete crds -l component=velero

          鏈接:https://www.cnblogs.com/zhangmingcheng/p/14836274.html

          (版權(quán)歸原作者所有,侵刪)


          瀏覽 151
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲成人影视在线播放 | 国产一级a毛一级a看免费视频野外 | 亚洲综合第页 | 国产高清日韩无码 | 波多野结衣系列在线天堂 |