精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何優雅的使用 Velero 快速備份和還原 Kubernetes 集群

系統 Linux
每個 Velero 的操作(比如按需備份、計劃備份、還原)都是 CRD 自定義資源,Velero 可以備份或還原集群中的所有對象,也可以按類型、namespace 或標簽過濾對象。

 [[438414]]

 

Velero(https://velero.io)(可以提供備份和還原 Kubernetes 集群資源和持久卷的能力,你可以在公有云或本地搭建的私有云環境安裝 Velero,可以為你提供以下能力:

  •  備份集群數據,并在集群故障的情況下進行還原
  •  將集群資源遷移到其他集群
  •  將生產集群復制到開發和測試集群

Velero 包含一個在集群上運行的服務器端和在本地運行的命令行客戶端。

原理

每個 Velero 的操作(比如按需備份、計劃備份、還原)都是 CRD 自定義資源,Velero 可以備份或還原集群中的所有對象,也可以按類型、namespace 或標簽過濾對象。Velero 是 Kubernetes 用來災難恢復的理想選擇,也可以在集群上執行系統操作(比如升級)之前對應用程序狀態進行快照的理想選擇。

按需備份

按需備份操作可以將復制的 Kubernetes 對象的壓縮文件上傳到云對象存儲中,也可以調用云環境提供的 API 來創建持久化卷的磁盤快照。我們可以選擇指定在備份期間執行的備份 hook,比如你可能需要在拍攝快照之前告訴數據庫將其內存中的緩沖區刷新到磁盤。

需要注意的是集群備份并不是嚴格的原子備份,如果在備份時創建或編輯 Kubernetes 對象,則它們可能不會被包含在備份中,是可能出現這種狀況的。

定時備份

通過定時操作,我們可以定期備份數據,第一次創建日程表時將執行第一次備份,隨后的備份將按日程表指定的間隔進行備份,這些間隔由 Cron 表達式指定。

定時備份保存的名稱為 <SCHEDULE NAME>-<TIMESTAMP>,其中 <TIMESTAMP> 格式為 YYYYMMDDhhmmss。

備份還原

通過還原操作,我們可以從以前創建的備份中還原所有對象和持久卷,此外我們還可以僅還原對象和持久卷的子集,Velero 支持多個命名空間重新映射。例如在一次還原操作中,可以在命名空間 def 下重新創建命名空間 abc 中的對象,或在 456 之下重新創建名稱空間 123 中的對象。

還原的默認名稱為 <BACKUP NAME>-<TIMESTAMP>,<TIMESTAMP> 格式為 YYYYMMDDhhmmss,還可以指定自定義名稱,恢復的對象還包括帶有鍵 velero.io/restore-name 和值的標簽 <RESTORE NAME>。

默認情況下,備份存儲位置以讀寫模式創建,但是,在還原期間,可以將備份存儲位置配置為只讀模式,這將禁用該存儲位置的備份創建和刪除,這對于確保在還原方案期間不會無意間創建或刪除任何備份非常有用。此外我們還可以選擇指定在還原期間或還原資源后執行的還原 hook,例如可能需要在數據庫應用程序容器啟動之前執行自定義數據庫還原操作。

備份流程

執行命令 velero backup create test-backup 的時候,會執行下面的操作:

  •  Velero 客戶端調用 Kubernetes APIServer 創建 Backup 這個 CRD 對象
  •  Backup 控制器 watch 到新的 Backup 對象被創建并執行驗證
  •  Backup 控制器開始執行備份,通過查詢 APIServer 來獲取資源收集數據進行備份
  •  Backup 控制器調用對象存儲服務,比如 S3 上傳備份文件

默認情況下 velero backup create 支持任何持久卷的磁盤快照,可以通過指定其他參數來調整快照,可以使用 --snapshot-volumes=false 選項禁用快照。

設置備份過期時間

創建備份時,可以通過添加標志 --ttl 來指定 TTL,如果未指定,則將默認的 TTL 值為30天,如果 Velero 檢測到有備份資源已過期,它將刪除以下相應備份數據:

  •  備份資源
  •  來自云對象存儲的備份文件
  •  所有 PersistentVolume 快照
  •  所有關聯的還原

同步對象存儲

Velero 將對象存儲視為資源的來源,它不斷檢查以確保始終存在正確的備份資源,如果存儲桶中有格式正確的備份文件,但 Kubernetes APIServer 中沒有相應的備份資源,則 Velero 會將信息從對象存儲同步到 Kubernetes,這使還原功能可以在集群遷移方案中工作,在該方案中,新集群中不存在原始的備份對象。同樣,如果備份對象存在于 Kubernetes 中,但不存在于對象存儲中,則由于備份壓縮包不再存在,它將從 Kubernetes 中刪除。

備份存儲位置和卷快照位置

Velero 有兩個自定義資源 BackupStorageLocation 和 VolumeSnapshotLocation,用于配置 Velero 備份及其關聯的持久卷快照的存儲位置。

  •  BackupStorageLocation:定義為存儲區,存儲所有 Velero 數據的存儲區中的前綴以及一組其他特定于提供程序的字段,后面部分會詳細介紹該部分所包含的字段。
  •  VolumeSnapshotLocation:完全由提供程序提供的特定的字段(例如AWS區域,Azure資源組,Portworx快照類型等)定義。

用戶可以預先配置一個或多個可能的 BackupStorageLocations 對象,也可以預先配置一個或多個 VolumeSnapshotLocations 對象,并且可以在創建備份時選擇應該存儲備份和相關快照的位置。

此配置設計支持許多不同的用法,包括:

  •  在單個 Velero 備份中創建不止一種持久卷的快照。例如,在同時具有 EBS 卷和 Portworx 卷的集群中
  •  在不同地區將數據備份到不同的存儲中
  •  對于支持它的卷提供程序(例如Portworx),可以將一些快照存儲在本地集群中,而將其他快照存儲在云中

安裝

在 Github Release 頁面(https://github.com/vmware-tanzu/velero/releases)下載指定的 velero 二進制客戶端安裝包,比如這里我們下載最新穩定版本 v1.6.3, 

  1. ➜  ~ wget https://github.com/vmware-tanzu/velero/releases/download/v1.6.3/velero-v1.6.3-darwin-amd64.tar.gz  
  2. # 如果有限制,也可以替換成下面的 URL 加速下載  
  3. # wget https://download.fastgit.org/vmware-tanzu/velero/releases/download/v1.6.3/velero-v1.6.3-darwin-amd64.tar.gz  
  4. ➜  ~ tar -zxvf velero-v1.6.3-darwin-amd64.tar.gz && cd velero-v1.6.3-darwin-amd64  
  5. ➜  ~ tree .  
  6.  
  7. ├── LICENSE  
  8. ├── examples  
  9. │   ├── README.md  
  10. │   ├── minio  
  11. │   │   └── 00-minio-deployment.yaml  
  12. │   └── nginx-app  
  13. │       ├── README.md  
  14. │       ├── base.yaml  
  15. │       └── with-pv.yaml  
  16. └── velero  
  17. 3 directories, 7 files 

將根目錄下面的 velero 二進制文件拷貝到 PATH 路徑下面: 

  1. ➜  ~ cp velero /usr/local/bin && chmod +x /usr/local/bin/velero  
  2. ➜  ~ velero version  
  3. Client:  
  4.         Version: v1.6.3  
  5.         Git commit: 5fe3a50bfddc2becb4c0bd5e2d3d4053a23e95d2 
  6. <error getting server version: no matches for kind "ServerStatusRequest" in version "velero.io/v1"> 

安裝 MINIO

這里我們可以使用 minio 來代替云環境的對象存儲,在上面解壓的壓縮包中包含一個 examples/minio/00-minio-deployment.yaml 的資源清單文件,為了測試方便可以將其中的 Service 更改為 NodePort 類型,我們可以配置一個 console-address 來提供一個 console 頁面的訪問入口,完整的資源清單文件如下所示: 

  1. apiVersion: v1  
  2. kind: Namespace  
  3. metadata:  
  4.   name: velero  
  5. --- 
  6. apiVersion: apps/v1  
  7. kind: Deployment  
  8. metadata:  
  9.   namespace: velero  
  10.   name: minio  
  11.   labels:  
  12.     component: minio  
  13. spec:  
  14.   strategy:  
  15.     type: Recreate  
  16.   selector:  
  17.     matchLabels:  
  18.       component: minio  
  19.   template:  
  20.     metadata:  
  21.       labels:  
  22.         component: minio  
  23.     spec:  
  24.       volumes:  
  25.       - name: storage  
  26.         emptyDir: {}  
  27.       - name: config  
  28.         emptyDir: {}  
  29.       containers:  
  30.       - name: minio  
  31.         image: minio/minio:latest  
  32.         imagePullPolicy: IfNotPresent  
  33.         args:  
  34.         - server  
  35.         - /storage  
  36.         - --config-dir=/config  
  37.         - --console-address=:9001  
  38.         env:  
  39.         - name: MINIO_ACCESS_KEY  
  40.           value: "minio"  
  41.         - name: MINIO_SECRET_KEY  
  42.           value: "minio123"  
  43.         ports:  
  44.         - containerPort: 9000  
  45.         - containerPort: 9001  
  46.         volumeMounts:  
  47.         - name: storage  
  48.           mountPath: "/storage"  
  49.         - name: config  
  50.           mountPath: "/config"  
  51. ---  
  52. apiVersion: v1  
  53. kind: Service  
  54. metadata:  
  55.   namespace: velero  
  56.   name: minio  
  57.   labels:  
  58.     component: minio  
  59. spec:  
  60.   type: NodePort  
  61.   ports:  
  62.     - name: api  
  63.       port: 9000  
  64.       targetPort: 9000  
  65.     - name: console  
  66.       port: 9001  
  67.       targetPort: 9001  
  68.   selector:  
  69.     component: minio  
  70. ---  
  71. apiVersion: batch/v1  
  72. kind: Job  
  73. metadata:  
  74.   namespace: velero  
  75.   name: minio-setup  
  76.   labels:  
  77.     component: minio  
  78. spec:  
  79.   template:  
  80.     metadata:  
  81.       name: minio-setup  
  82.     spec: 
  83.        restartPolicy: OnFailure  
  84.       volumes:  
  85.       - name: config  
  86.         emptyDir: {}  
  87.       containers:  
  88.       - name: mc  
  89.         image: minio/mc:latest  
  90.         imagePullPolicy: IfNotPresent  
  91.         command:  
  92.         - /bin/sh  
  93.         - -c  
  94.         - "mc --config-dir=/config config host add velero http://minio:9000 minio minio123 && mc --config-dir=/config mb -p velero/velero"  
  95.         volumeMounts:  
  96.         - name: config  
  97.           mountPath: "/config" 

然后直接部署在 Kubernetes 集群中即可: 

  1. ➜  ~ kubectl apply -f examples/minio/00-minio-deployment.yaml  
  2. namespace/velero created  
  3. deployment.apps/minio created  
  4. service/minio created  
  5. job.batch/minio-setup created  
  6. ➜  ~ kubectl get pods -n velero  
  7. NAME                     READY   STATUS      RESTARTS   AGE  
  8. minio-5b96ffddf8-x8s7p   1/1     Running     0          2m48s  
  9. minio-setup-rhc4d        0/1     Completed   1          2m48s  
  10. ➜  ~ kubectl get svc -n velero  
  11. NAME    TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)                         AGE  
  12. minio   NodePort   10.103.132.34   <none>        9000:32036/TCP,9001:31925/TCP   3m56s 

然后我們可以通過 http://<nodeip>:31925 訪問 minio 的 console 頁面,使用 minio 與 minio 進行登錄即可:

當然如果需要在不同 Kubernetes 和存儲池集群備份與恢復數據,需要將 minio 服務端安裝在 Kubernetes 集群外,保證在集群發生災難性故障時,不會對備份數據產生影響,可以通過二進制的方式進行安裝。

在待安裝 minio 的服務器上下載二進制包 

  1. ➜  ~ wget https://dl.minio.io/server/minio/release/linux-amd64/minio  
  2. ➜  ~ chmod +x minio  
  3. ➜  ~ sudo mv minio /usr/local/bin/  
  4. ➜  ~ minio --version 

準備對象存儲的磁盤,這里我們跳過該步驟,可以使用 systemd 來方便管理 minio 服務,對于使用 systemd init 系統運行系統的人,請創建用于運行 minio 服務的用戶和組: 

  1. ➜  ~ sudo groupadd --system minio  
  2. ➜  ~ sudo useradd -s /sbin/nologin --system -g minio minio 

為 /data(上述步驟準備好的磁盤掛載位置)目錄提供 minio 用戶所有權: 

  1. ➜  ~ sudo chown -R minio:minio /data/v 

為 minio 創建 systemd 服務單元文件: 

  1. ➜  ~ vi /etc/systemd/system/minio.service  
  2. [Unit]  
  3. Description=Minio  
  4. Documentation=https://docs.minio.io  
  5. Wants=network-online.target  
  6. After=network-online.target  
  7. AssertFileIsExecutable=/usr/local/bin/minio  
  8. [Service] 
  9. WorkingDirectory=/data 
  10. User=minio  
  11. Group=minio  
  12. EnvironmentFile=-/etc/default/minio  
  13. ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"  
  14. ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES  
  15. # Let systemd restart this service always  
  16. Restart=always  
  17. # Specifies the maximum file descriptor number that can be opened by this process 
  18.  LimitNOFILE=65536  
  19. # Disable timeout logic and wait until process is stopped  
  20. TimeoutStopSec=infinity  
  21. SendSIGKILL=no  
  22. [Install]  
  23. WantedBy=multi-user.target 

創建 minio 環境文件 /etc/default/minio: 

  1. # Volume to be used for Minio server.  
  2. MINIO_VOLUMES="/data"  
  3. # Use if you want to run Minio on a custom port.  
  4. MINIO_OPTS="--address :9000"  
  5. # Access Key of the server.  
  6. MINIO_ACCESS_KEY=minio  
  7. # Secret key of the server.  
  8. MINIO_SECRET_KEY=minio123 

其中 MINIO_ACCESS_KEY 為長度至少為3個字符的訪問密鑰,MINIO_SECRET_KEY 為最少8個字符的密鑰。重新加載 systemd 并啟動 minio 服務: 

  1. ➜  ~ sudo systemctl daemon-reload  
  2. ➜  ~ sudo systemctl start minio 

關于 minio 的更多使用方法可以參考官方文檔 https://docs.min.io/ 了解更多。

安裝 velero 服務端

我們可以使用 velero 客戶端來安裝服務端,也可以使用 Helm Chart 來進行安裝,比如這里我們用客戶端來安裝,velero 命令默認讀取 kubectl 配置的集群上下文,所以前提是 velero 客戶端所在的節點有可訪問集群的 kubeconfig 配置。

首先準備密鑰文件,在當前目錄建立一個空白文本文件,內容如下所示: 

  1. [default]  
  2. aws_access_key_id=<access key id>  
  3. aws_secret_access_key=<secret access key> 

替換為之前步驟中 minio 的對應 access key id 和 secret access key如果 minio 安裝在 kubernetes 集群內時按照如下命令安裝 velero 服務端: 

  1. ➜  ~ velero install    \  
  2.      --provider aws   \  
  3.      --bucket velero   \  
  4.      --image velero/velero:v1.6.3  \  
  5.   --plugins velero/velero-plugin-for-aws:v1.2.1  \  
  6.   --namespace velero  \  
  7.   --secret-file ./credentials-velero  \  
  8.   --use-volume-snapshots=false \  
  9.      --use-restic \  
  10.   --backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://minio.velero.svc:9000  
  11. ......  
  12. DaemonSet/restic: created  
  13. Velero is installed! ⛵ Use 'kubectl logs deployment/velero -n velero' to view the status.  
  14. ➜  ~ kubectl get pods -n velero 
  15. NAME                      READY   STATUS      RESTARTS   AGE  
  16. minio-5b96ffddf8-x8s7p    1/1     Running     0          4m1s  
  17. minio-setup-rhc4d         0/1     Completed   1          4m1s  
  18. restic-2qn94              1/1     Running     0          22s  
  19. velero-664598d6cc-dpvxn   1/1     Running     0          22s 

由于我們這里準備使用 minio 來作為對象存儲,minio 是兼容 S3 的,所以這里我們配置的 provider(聲明使用的 Velero 插件類型)是 aws,--secret-file 用來提供訪問 minio 的密鑰,--use-restic 表示使用開源免費備份工具 restic 備份和還原持久卷數據,啟用該參數后會部署一個名為 restic 的 DaemonSet 對象,--plugins 使用的 velero 插件,我們使用 AWS S3 兼容插件。

安裝完成后 velero 的服務端就部署成功了。

測試

比如現在我們部署一個 mysql 應用,資源清單文件如下所示: 

  1. # mysql-deployment.yaml  
  2. apiVersion: v1  
  3. kind: PersistentVolumeClaim  
  4. metadata:  
  5.   name: mysql-pv-claim  
  6.   labels:  
  7.     app: mysql  
  8. spec:  
  9.   accessModes:  
  10.     - ReadWriteOnce  
  11.   resources:  
  12.     requests:  
  13.       storage: 20Gi  
  14. ---  
  15. apiVersion: apps/v1  
  16. kind: Deployment  
  17. metadata:  
  18.   name: mysql  
  19.   labels:  
  20.     app: mysql  
  21. spec:  
  22.   selector:  
  23.     matchLabels:  
  24.       app: mysql  
  25.   template:  
  26.     metadata:  
  27.       labels:  
  28.         app: mysql  
  29.     spec:  
  30.       containers:  
  31.       - image: mysql:5.6  
  32.         name: mysql  
  33.         env:  
  34.         - name: MYSQL_ROOT_PASSWORD  
  35.           valueFrom:  
  36.             secretKeyRef:  
  37.               name: mysql-pass  
  38.               key: password  
  39.         livenessProbe:  
  40.           tcpSocket:  
  41.             port: 3306  
  42.         ports:  
  43.         - containerPort: 3306  
  44.           name: mysql  
  45.         volumeMounts:  
  46.         - name: mysql-persistent-storage  
  47.           mountPath: /var/lib/mysql  
  48.       volumes:  
  49.       - name: mysql-persistent-storage  
  50.         persistentVolumeClaim:  
  51.           claimName: mysql-pv-claim 

直接部署上面的應用: 

  1. ➜  ~ kubectl create namespace kube-demo  
  2. ➜  ~ kubectl create secret generic mysql-pass --from-literal=password=password321 -n kube-demo  
  3. ➜  ~ kubectl apply -f mysql-deployment.yaml -n kube-demo  
  4. ➜  ~ kubectl get pods -n kube-demo  
  5. NAME                    READY   STATUS    RESTARTS   AGE  
  6. mysql-c57f676dd-gw5pf   1/1     Running   0          51s 

比如現在我們創建一個新的數據庫 velero: 

  1. ➜  ~ kubectl exec -it -n kube-demo mysql-c57f676dd-gw5pf -- /bin/bash  
  2. mysql-c57f676dd-gw5pf:/# mysql -uroot -p  
  3. Enter password:  
  4. Welcome to the MySQL monitor.  Commands end with ; or \g.  
  5. Your MySQL connection id is 7  
  6. Server version: 5.6.51 MySQL Community Server (GPL)  
  7. Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved.  
  8. Oracle is a registered trademark of Oracle Corporation and/or its  
  9. affiliates. Other names may be trademarks of their respective  
  10. owners.  
  11. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.  
  12. mysql> show databases;  
  13. +--------------------+  
  14. | Database           |  
  15. +--------------------+  
  16. | information_schema |  
  17. | mysql              |  
  18. | performance_schema |  
  19. +--------------------+  
  20. 3 rows in set (0.00 sec)  
  21. mysql> create database velero;  
  22. Query OK, 1 row affected (0.00 sec) 
  23. mysql> show databases;  
  24. +--------------------+  
  25. | Database           |  
  26. +--------------------+  
  27. | information_schema |  
  28. | mysql              |  
  29. | performance_schema |  
  30. | velero             |  
  31. +--------------------+  
  32. 4 rows in set (0.00 sec)  
  33. mysql> 

現在我們來執行一個備份: 

  1. ➜  ~ velero backup create mysql-backup --include-namespaces kube-demo --default-volumes-to-restic  
  2. Backup request "mysql-backup" submitted successfully.  
  3. Run `velero backup describe mysql-backup` or `velero backup logs mysql-backup` for more details. 

其中我們指定的 --default-volumes-to-restic 參數表示使用 restic 備份持久卷到 minio,--include-namespaces 用來備份該命名空間下的所有資源,不包括集群資源,此外還可以使用 --include-resources 指定要備份的資源類型 ,--include-cluster-resources 指定是否備份集群資源。

該命令請求創建一個對項目(命名空間)的備份,備份請求發送之后可以用命令查看備份狀態,等到 STATUS 列變為 Completed 表示備份完成。 

  1. ➜  ~ velero backup get  
  2. NAME           STATUS      ERRORS   WARNINGS   CREATED                         EXPIRES   STORAGE LOCATION   SELECTOR  
  3. mysql-backup   Completed   0        0          2021-09-16 16:58:51 +0800 CST   29d       default            <none>  
  4. ➜  ~ velero backup describe mysql-backup  
  5. Name:         mysql-backup  
  6. Namespace:    velero 
  7. abels:       velero.io/storage-location=default  
  8. Annotations:  velero.io/source-cluster-k8s-gitversion=v1.18.4-tke.6  
  9.               velero.io/source-cluster-k8s-major-version=1  
  10.               velero.io/source-cluster-k8s-minor-version=18 
  11. Phase:  Completed  
  12. Errors:    0  
  13. Warnings:  0  
  14. Namespaces:  
  15.   Included:  kube-demo  
  16.   Excluded:  <none>  
  17. Resources:  
  18.   Included:        *  
  19.   Excluded:        <none>  
  20.   Cluster-scoped:  auto  
  21. Label selector:  <none>  
  22. Storage Location:  default  
  23. Velero-Native Snapshot PVs:  auto  
  24. TTL:  720h0m0s  
  25. Hooks:  <none>  
  26. Backup Format Version:  1.1.0  
  27. Started:    2021-09-16 16:58:51 +0800 CST  
  28. Completed:  2021-09-16 16:59:08 +0800 CST   
  29. Expiration:  2021-10-16 16:58:51 +0800 CST  
  30. Total items to be backed up:  30  
  31. Items backed up:              30   
  32. Velero-Native Snapshots: <none included> 
  33. Restic Backups (specify --details for more information):  
  34.   Completed:  1 

備份完成后可以去 minio 的 bucket 上查看是否有對應的備份數據:

現在我們刪除應用所在的命名空間來模擬生產環境發生災難或運維錯誤導致應用失敗的場景: 

  1. ➜  ~ kubectl delete namespace kube-demo 

這個時候我們肯定訪問不了我們的 MySQL 數據庫了,這時候我們可以用一條命令,使用 velero 從 minio 中來恢復應用和數據: 

  1. ➜  ~ velero restore create --from-backup mysql-backup  
  2. Restore request "mysql-backup-20210916172100" submitted successfully.  
  3. Run `velero restore describe mysql-backup-20210916172100` or `velero restore logs mysql-backup-20210916172100` for more details.  

同樣我們可以使用 velero restore get 來查看還原的進度,等到 STATUS 列變為 Completed 表示還原完成: 

  1. ➜  ~ velero restore get  
  2. NAME                          BACKUP         STATUS      STARTED                         COMPLETED                       ERRORS   WARNINGS   CREATED                       SELECTOR 
  3. mysql-backup-20210916172100   mysql-backup   Completed   2021-09-16 17:21:00 +0800 CST   2021-09-16 17:21:22 +0800 CST   0        0          2021-09-16 17:21:00 +0800 CST   <none> 
  4. ➜  ~ velero restore describe mysql-backup-20210916172100  
  5. Name:         mysql-backup-20210916172100  
  6. Namespace:    velero  
  7. Labels:       <none>  
  8. Annotations:  <none> 
  9. Phase:                       Completed  
  10. Total items to be restored:  10  
  11. Items restored:              10  
  12. Started:    2021-09-16 17:21:00 +0800 CST  
  13. Completed:  2021-09-16 17:21:22 +0800 CST  
  14. Backup:  mysql-backup 
  15. Namespaces:  
  16.   Included:  all namespaces found in the backup  
  17.   Excluded:  <none>  
  18. Resources:  
  19.   Included:        *  
  20.   Excluded:        nodes, events, events.events.k8s.io, backups.velero.io, restores.velero.io, resticrepositories.velero.io  
  21.   Cluster-scoped:  auto  
  22. Namespace mappings:  <none>  
  23. Label selector:  <none>  
  24. Restore PVs:  auto  
  25. Restic Restores (specify --details for more information):  
  26.   Completed:  1  
  27. Preserve Service NodePorts:  auto 

還原完成后我們再去查看之前我們的 kube-demo 命名空間下面的應用數據是否正確: 

  1. ➜  ~ kubectl get ns kube-demo  
  2. NAME        STATUS   AGE  
  3. kube-demo   Active   3m29s  
  4. ➜  ~ kubectl get pods -n kube-demo  
  5. NAME                    READY   STATUS    RESTARTS   AGE  
  6. mysql-c57f676dd-gw5pf   1/1     Running   0          6m28s  
  7. ➜  ~ kubectl exec -it -n kube-demo mysql-c57f676dd-gw5pf -- /bin/bash  
  8. root@mysql-c57f676dd-gw5pf:/# mysql -uroot -p  
  9. Enter password: 
  10. elcome to the MySQL monitor.  Commands end with ; or \g.  
  11. Your MySQL connection id is 42 
  12. Server version: 5.6.51 MySQL Community Server (GPL)  
  13. Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved.  
  14. Oracle is a registered trademark of Oracle Corporation and/or its  
  15. affiliates. Other names may be trademarks of their respective  
  16. owners.  
  17. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.  
  18. mysql> show databases;  
  19. +---------------------+  
  20. | Database            |  
  21. +---------------------+  
  22. | information_schema  |  
  23. | #mysql50#lost+found |  
  24. | mysql               |  
  25. | performance_schema  |  
  26. | velero              |  
  27. +---------------------+  
  28. 5 rows in set (0.00 sec)  
  29. mysql> 

可以看到我們的創建的 velero 數據庫依然存在,證明已經完全恢復了。

只要我們將每個 velero 實例指向相同的對象存儲,velero 就能將資源從一個群集遷移到另一個群集。此外還支持定時備份,觸發備份 Hooks 等操作,更多資料請查閱官方文檔:https://velero.io/docs/ 

 

責任編輯:龐桂玉 來源: 奇妙的Linux世界
相關推薦

2021-09-27 05:42:44

VeleroKubernetes 公有云

2022-09-23 17:26:04

VeleroKubernetes

2019-11-28 10:15:35

TimeShiftUbuntuLinux

2021-12-21 15:17:53

Kubernetes緩存Linux

2020-03-19 11:12:21

云計算KubernetesDocker

2022-08-05 08:48:33

KubernetesEtcd數據

2022-08-10 10:46:13

?CrossplanKubernete插件

2022-08-11 08:41:31

CrossplaneVCluster

2021-06-25 15:53:25

Kubernetes程序技巧

2021-12-29 17:24:16

Kubernetes集群事件

2024-05-23 13:49:00

Kuberneteetcd集群

2023-10-19 19:42:25

IstioPodkubernetes

2022-09-23 09:28:11

KubeSealKubernetesSecret

2022-01-21 09:45:42

Mozilla SOKubernetesLinux

2015-08-21 10:40:10

SQL Server備份還原

2021-07-01 11:29:45

KubernetesGrafana監控

2010-12-31 14:42:51

ExchangeSer

2022-02-17 11:08:00

KubernetesMySQL運維

2011-09-15 09:49:57

HBase

2017-03-22 10:06:40

ubuntuceph集群
點贊
收藏

51CTO技術棧公眾號

亚洲无人区码一码二码三码| 伊人久久大香线蕉午夜av| 久久中文字幕在线观看| 国产欧美自拍一区| 色综合一区二区| 亚洲精品中文字幕乱码三区不卡| 国产高清第一页| 在线亚洲国产精品网站| 深夜福利一区二区| 亚洲 自拍 另类 欧美 丝袜| 欧美男男tv网站在线播放| 日本一二三不卡| 成人国产一区二区| 国产精品xxxxxx| 红桃视频亚洲| 日韩中文理论片| 中文字幕一区三区久久女搜查官| 精品久久在线| 日韩欧美在线第一页| 91麻豆天美传媒在线| 日韩大片b站免费观看直播| 久久成人18免费观看| 91av免费观看91av精品在线| 国产精品一区二区亚洲| 全球av集中精品导航福利| 91精品一区二区三区在线观看| 91精品91久久久中77777老牛| 黄av在线播放| 国产精品热久久久久夜色精品三区| 国产精品夜夜夜一区二区三区尤| 97人妻一区二区精品免费视频 | 亚洲精品久久久久久国| 少妇久久久久| 精品欧美一区二区在线观看| 天堂在线资源视频| 在线天堂中文资源最新版| 亚洲精品欧美综合四区| 亚洲国产精品日韩| 久草在线青青草| 成人午夜在线播放| 91综合免费在线| 一级日韩一级欧美| 日本sm残虐另类| 欧美在线一区二区视频| 国产精品成人国产乱| 欧美激情1区| 久热精品在线视频| 国产精品视频一区二区三| 欧美系列电影免费观看| 国产一区二区三区在线看| 女~淫辱の触手3d动漫| 久久精品论坛| 日韩国产在线播放| 五级黄高潮片90分钟视频| 女人抽搐喷水高潮国产精品| 精品成人免费观看| 妖精视频一区二区| 久久精品色综合| 亚洲精品成人久久久| 亚洲午夜久久久久久久久| 中文字幕一区图| 亚洲激情自拍图| 中文字幕日韩三级片| 色婷婷精品视频| 国产亚洲欧美日韩精品| 香蕉久久久久久久| 9191国语精品高清在线| 欧美成年人视频网站| 久久久久成人片免费观看蜜芽| 午夜天堂精品久久久久| 欧美激情女人20p| 日韩欧美亚洲一区二区三区| 在线亚洲自拍| 国产精品久久久亚洲| 亚洲天堂网在线观看视频| 国产综合色精品一区二区三区| 亚洲精品免费网站| 婷婷综合激情网| 99久久99久久精品免费观看 | 日本三级久久久| 亚洲欧美一二三区| 极品销魂美女一区二区三区| 91九色视频在线观看| 亚洲AV午夜精品| 91影院在线观看| 日韩在线电影一区| 国产最新在线| 欧美日韩在线视频一区二区| 人人爽人人av| 日韩精品视频中文字幕| 亚洲开心激情网| 日本一级片免费| 99精品福利视频| 国产美女久久精品| 狠狠躁夜夜躁av无码中文幕| 国产偷国产偷亚洲高清人白洁| 中日韩在线视频| 黄色在线观看www| 日韩欧美中文免费| 欧美国产在线一区| 国产成人三级| 欧美夫妻性视频| 日韩中文字幕高清| 国产精品羞羞答答xxdd| 欧美日韩一区在线视频| 成人在线播放免费观看| 欧美特黄级在线| 日本77777| 精品在线观看入口| 欧美肥老妇视频| 亚洲在线免费观看视频| av电影天堂一区二区在线| 中文精品一区二区三区| 自拍偷自拍亚洲精品被多人伦好爽| 日韩一区和二区| 337人体粉嫩噜噜噜| 一区精品久久| 成人写真视频福利网| 青青草免费在线| 亚洲激情中文1区| 国产成人黄色网址| 日韩黄色网络| 欧美黑人xxx| 91女人18毛片水多国产| 久久精品一区二区三区av| 久久国产精品网| 国产日韩欧美中文在线| 最近2019免费中文字幕视频三| 日本视频在线观看免费| 国产不卡视频在线观看| 97超碰人人爱| 国产一区二区三区四区五区3d| 亚洲精品永久免费精品| 久久9999久久免费精品国产| 精品亚洲成a人| 亚洲午夜精品一区二区| 亚洲黄色中文字幕| 日韩www在线| 日韩成人免费在线观看| 国产91精品一区二区| 最近中文字幕免费mv| 日韩大陆av| 中文字幕欧美日韩va免费视频| 久久久免费高清视频| aaa国产一区| 男人日女人视频网站| 国产精品sss在线观看av| 欧美精品午夜视频| 成人激情四射网| 亚洲另类在线一区| 性鲍视频在线观看| 欧美久久视频| 国产成人精品福利一区二区三区| 色呦呦视频在线观看| 欧美一区二区三区精品| 久操视频免费在线观看| 大桥未久av一区二区三区中文| 久久久久久久香蕉| 高清一区二区三区| 97超碰国产精品女人人人爽| 亚洲欧美日本在线观看| 欧美性xxxxxx| 日本成人午夜影院| 久色婷婷小香蕉久久| 视频一区二区在线| 亚洲网站免费| 欧美激情一二区| 天天射天天操天天干| 色综合久久综合网97色综合| 国产毛片欧美毛片久久久| 免费观看在线色综合| 中文字幕av日韩精品| 精品久久免费| 4438全国亚洲精品在线观看视频| 日本亚洲欧美| 欧美三级视频在线| 69xx绿帽三人行| 99精品黄色片免费大全| 熟妇人妻无乱码中文字幕真矢织江| 日韩av久操| 99在线首页视频| 亚洲欧美韩国| 久久精品国产成人精品| 亚洲男人第一天堂| 日本高清不卡一区| 国产精品三区在线观看| 99在线热播精品免费| 超碰av在线免费观看| 一区二区蜜桃| 久久国产一区二区| 色成人综合网| 欧美亚洲一级片| 久久99精品久久| 精品国产123| 国产天堂第一区| 一卡二卡欧美日韩| 中字幕一区二区三区乱码| 国产精品自拍av| 久草综合在线观看| 欧美日韩免费观看一区=区三区| 欧美一区免费视频| 亚洲综合影院| 国产精品久久久久久久久男 | 91国语精品自产拍在线观看性色| 成年人视频网站在线| 亚洲精品一区二区三区在线观看| 最近中文字幕av| 偷拍与自拍一区| 亚洲一级二级片| 久久亚洲一区二区三区明星换脸 | 俺去啦;欧美日韩| 色视频在线观看| 日韩欧美一区二区视频| 天天干天天色综合| 亚洲午夜一二三区视频| 黄色片网站在线播放| 久久先锋资源网| av电影在线播放| 国产乱码精品一区二区三区忘忧草| 国语对白做受xxxxx在线中国| 欧美日一区二区三区在线观看国产免| 午夜精品视频在线观看一区二区| 美女主播精品视频一二三四| 2020国产精品久久精品不卡| 日本中文字幕一区二区| 91国产视频在线| 成人性生交大片免费看在线播放| 乱亲女秽乱长久久久| 粉嫩av一区| 亚洲欧美在线一区二区| 亚洲日本在线播放| 亚洲国产精品免费| 亚洲av无码专区在线| 欧美一激情一区二区三区| 一本色道久久综合无码人妻| 在线视频综合导航| 亚洲AV无码成人精品区东京热| 天天色图综合网| 国产乡下妇女做爰视频| 亚洲一区电影777| 免费无遮挡无码永久在线观看视频| 亚洲欧美在线视频| 黑人狂躁日本娇小| 日韩一区日韩二区| 三上悠亚在线观看视频| 国产精品福利在线播放| av电影网站在线观看| 国产日韩欧美不卡在线| 怡红院一区二区三区| 久久精品欧美日韩精品| 真实乱视频国产免费观看| 久久久久99精品一区| 午夜时刻免费入口| 国产精品日日摸夜夜摸av| 2014亚洲天堂| 亚洲欧美激情小说另类| 免费无码毛片一区二区app| 一区二区三区精品视频| 国产小视频在线看| 亚洲成人av在线电影| 国产精品成人av久久| 天天影视网天天综合色在线播放| 国产91精品一区| 在线视频你懂得一区二区三区| 最近中文在线观看| 在线播放一区二区三区| av老司机久久| 亚洲国产精品大全| 四虎在线视频| 中国人与牲禽动交精品| 韩国中文字幕在线| 欧美精品videofree1080p| 日韩伦理在线一区| 国产精品亚洲美女av网站| www.久久久久爱免| 国产乱码精品一区二区三区中文 | 亚洲欧美国产另类| 成人在线观看免费| 欧美成人h版在线观看| 超碰在线视屏| 国产有码一区二区| 在线播放一区二区精品视频| 久久综合伊人77777麻豆| 欧美天天综合| 欧美一级视频在线播放| 日韩精品乱码免费| 免费国偷自产拍精品视频| av在线一区二区| 国产三级精品三级观看| 亚洲成a天堂v人片| 中文字幕一区二区三区人妻四季| 91精品久久久久久蜜臀| 性感美女福利视频| 久久韩剧网电视剧| 日韩电影免费看| 成人情趣片在线观看免费| 欧美日韩精品一区二区三区在线观看| 一级二级三级欧美| 亚洲永久网站| 潘金莲一级淫片aaaaa| 亚洲国产精品精华液ab| 国产精品theporn动漫| 欧美日韩www| 欧美孕妇孕交| 国内精品视频久久| 亚洲精品一区av| 欧美成人一区二区在线| 欧美一区免费| 蜜臀av免费观看| 99久久综合精品| 青青草原国产视频| 91官网在线免费观看| 你懂的网站在线| 久久精品国产亚洲一区二区| 日本免费久久| 国产区二精品视| 欧美国产三级| 天堂av.com| 国产精品区一区二区三| 亚洲va在线观看| 亚洲福利视频专区| 影音先锋在线播放| 成人激情在线观看| 欧美丝袜激情| 九九视频精品在线观看| 久久奇米777| 影音先锋亚洲天堂| 日韩精品一区二区三区在线观看 | 国产mv久久久| 羞羞答答一区二区| 亚洲熟妇国产熟妇肥婆| 高清国产午夜精品久久久久久| av黄色免费在线观看| 欧美午夜寂寞影院| 在线日本中文字幕| 国产精品福利在线观看| 九九视频免费观看视频精品| 欧美日韩黄色一级片| 99久久伊人久久99| 欧美三级韩国三级日本三斤在线观看| 精品欧美乱码久久久久久| av片在线观看网站| 亚洲japanese制服美女| 伊人久久大香线| 久久无码人妻一区二区三区| 亚洲欧美综合色| 国产xxxx在线观看| 九九久久综合网站| 最新精品在线| 青青草精品视频在线| 99久久综合色| 亚洲av无码精品一区二区| 国产亚洲aⅴaaaaaa毛片| 国产成人午夜性a一级毛片| 亚洲mv在线看| 国产综合成人久久大片91| 久久久精品视频免费观看| 亚洲精品一区在线观看| 九色porny丨首页入口在线| 狼狼综合久久久久综合网| 丝袜美腿亚洲一区| 成熟人妻av无码专区| 欧美高清激情brazzers| 性欧美ⅴideo另类hd| 国产精品久久精品视| 午夜亚洲伦理| 在线观看免费黄色网址| 欧美二区三区的天堂| 污视频网站免费在线观看| 国产乱码一区| 日韩电影免费在线看| 卡通动漫亚洲综合| 亚洲第一免费播放区| 日日av拍夜夜添久久免费| 在线视频精品一区| 成人av网站在线观看免费| 日本一区二区三区精品| 色偷偷偷亚洲综合网另类| 日韩在线网址| 欧美日韩黄色一级片| 国产精品无人区| 亚洲精华国产精华精华液网站| 91精品国产99久久久久久| 日韩av密桃| 日韩Av无码精品| 欧美在线免费观看视频| 超碰最新在线| 免费试看一区| 国产黄色精品网站| 国产www在线| 欧美精品在线观看| 亚洲素人在线| 四虎国产精品永久免费观看视频| 一本久久a久久精品亚洲| 国产激情在线视频| 欧美日韩在线观看一区| 国产一区二区精品久久99| 中文字幕在线播| 欧美肥婆姓交大片| 欧美国产美女|