Velero 使用

      網(wǎng)友投稿 1405 2025-03-31

      一 災(zāi)難恢復(fù)


      使用計(jì)劃和只讀備份存儲(chǔ)位置如果您定期備份集群的資源,那么在發(fā)生意外事故(如服務(wù)中斷)時(shí),您就能夠返回到以前的狀態(tài)。與 velero 一起這樣做看起來(lái)如下

      在集群上首次運(yùn)行 velero 服務(wù)器后,設(shè)置每日備份(根據(jù)需要替換命令中的 ):

      velero schedule create --schedule "0 7 * * *"

      這將創(chuàng)建一個(gè)名為 < schedule name >-< timestamp > 的 Backup 對(duì)象。默認(rèn)的備份保持期(表示為 TTL (生存時(shí)間))為30天(720小時(shí)) ; 您可以使用 – TTL < duration > 標(biāo)志根據(jù)需要更改這個(gè)值。有關(guān)備份過(guò)期的更多信息,請(qǐng)參見 velero 如何工作。

      災(zāi)難發(fā)生了,您需要重新創(chuàng)建您的資源。

      將您的備份存儲(chǔ)位置更新為只讀模式(這可以防止在還原過(guò)程中在備份存儲(chǔ)位置創(chuàng)建或刪除備份對(duì)象)

      Velero 使用

      kubectl patch backupstoragelocation \ --namespace velero \ --type merge \ --patch '{"spec":{"accessMode":"ReadOnly"}}'

      使用最新的 Velero 備份創(chuàng)建還原:

      velero restore create --from-backup -

      準(zhǔn)備好后,將備份存儲(chǔ)位置恢復(fù)為讀寫模式:

      kubectl patch backupstoragelocation \ --namespace velero \ --type merge \ --patch '{"spec":{"accessMode":"ReadWrite"}}'

      二 集群遷移

      2.1 執(zhí)行遷移

      使用 Backups 和 Restores Velero 可以幫助您將資源從一個(gè)集群移植到另一個(gè)集群,只要您將每個(gè) Velero 實(shí)例指向相同的云對(duì)象存儲(chǔ)位置。此場(chǎng)景假設(shè)您的集群由相同的云提供商托管。注意,Velero 并不支持跨云提供者遷移持久卷快照。如果您希望在云平臺(tái)之間遷移卷數(shù)據(jù),請(qǐng)啟用 restic,它將在文件系統(tǒng)級(jí)備份卷內(nèi)容。

      (集群 1)假設(shè)您還沒有使用 Velero 調(diào)度操作檢查點(diǎn)數(shù)據(jù),您需要先備份整個(gè)集群(根據(jù)需要替換 ):

      velero backup create

      默認(rèn)備份保留期,表示為 TTL(生存時(shí)間),為 30 天(720 小時(shí));您可以根據(jù)需要使用 --ttl 標(biāo)志進(jìn)行更改。有關(guān)備份到期的更多信息,請(qǐng)參閱 velero 的工作原理。

      (Cluster 2)配置 BackupStorageLocations 和 VolumeSnapshotLocations,指向 Cluster 1使用的位置,使用 velero 備份位置 create 和 velero 快照位置 create。使用 – access-mode = ReadOnly 標(biāo)志創(chuàng)建 velero 備份位置 create,確保將 BackupStorageLocations 配置為只讀。

      (集群 2)確保已創(chuàng)建 Velero 備份對(duì)象。 Velero 資源與云存儲(chǔ)中的備份文件同步。

      velero backup describe

      注意:默認(rèn)同步間隔為 1 分鐘,因此請(qǐng)務(wù)必等待再檢查。您可以使用 --backup-sync-period 標(biāo)志將此間隔配置到 Velero 服務(wù)器。

      (集群 2)一旦您確認(rèn)正確的備份 () 現(xiàn)在存在,您可以使用以下命令恢復(fù)所有內(nèi)容:

      velero restore create --from-backup

      2.2 驗(yàn)證兩個(gè)集群

      檢查第二個(gè)集群是否按預(yù)期運(yùn)行:

      (Cluster 2) Run:

      velero restore get

      Then run:

      velero restore describe

      如果遇到問(wèn)題,請(qǐng)確保 Velero 在兩個(gè)集群的相同命名空間中運(yùn)行。

      三 資源過(guò)濾

      按命名空間、類型或標(biāo)簽篩選對(duì)象。

      當(dāng)不使用過(guò)濾選項(xiàng)時(shí),Velero 包括備份或恢復(fù)中的所有對(duì)象。

      3.1 包含

      –include-namespaces

      備份命名空間及其對(duì)象。

      velero backup create --include-namespaces

      還原兩個(gè)名稱空間及其對(duì)象。

      velero restore create --include-namespaces ,

      –include-resources

      備份集群中的所有部署。

      velero backup create --include-resources deployments

      恢復(fù)集群中的所有部署和配置映射。

      velero restore create --include-resources deployments,configmaps

      備份命名空間中的部署。

      velero backup create --include-resources deployments --include-namespaces

      –include-cluster-resources

      此選項(xiàng)可以具有三個(gè)可能的值:

      true: 包含所有集群范圍的資源。

      false:不包括集群范圍的資源。

      nil :(“自動(dòng)”或未提供)

      備份或恢復(fù)所有命名空間時(shí)包括集群范圍的資源。默認(rèn)值:真。

      使用命名空間過(guò)濾時(shí),不包括集群范圍的資源。默認(rèn)值:假。

      如果由自定義操作(例如 PVC->PV)觸發(fā),某些相關(guān)的集群范圍資源可能仍會(huì)被備份/恢復(fù),除非 --include-cluster-resources=false。

      備份整個(gè)集群,包括集群范圍內(nèi)的資源。

      velero backup create

      僅恢復(fù)集群中的命名空間資源。

      velero restore create --include-cluster-resources=false

      備份命名空間并包含集群范圍的資源。

      velero backup create --include-namespaces --include-cluster-resources=true

      –selector

      包含與標(biāo)簽選擇器匹配的資源。

      velero backup create --selector =

      3.2 排除

      從備份中排除特定資源。

      通配符排除被忽略。

      –exclude-namespaces

      排除命名空間 從集群備份中排除 kube-system。

      velero backup create --exclude-namespaces kube-system

      在還原期間排除兩個(gè)命名空間。

      velero restore create --exclude-namespaces ,

      – exclude-resources

      從備份中排除秘密。

      velero backup create --exclude-resources secrets

      排除機(jī)密和角色綁定。

      velero backup create --exclude-resources secrets,rolebindings

      velero.io/exclude-from-backup=true

      帶有 velero.io/exclude-from-backup=true 標(biāo)簽的資源不包含在備份中,即使它包含匹配的選擇器標(biāo)簽。

      四 Backup Reference

      4.1 從備份中排除特定項(xiàng)目

      即使它們與備份規(guī)范中定義的資源/名稱空間/標(biāo)簽選擇器匹配,也可以排除備份中的單個(gè)項(xiàng)。要做到這一點(diǎn),標(biāo)簽的項(xiàng)目如下:

      kubectl label -n / velero.io/exclude-from-backup=true

      4.2 指定特定種類資源的備份順序

      要按照特定順序備份特定類型的資源,可以使用 option-ordered-resources 指定將 sort 映射到該類型特定資源的有序列表。資源名稱用逗號(hào)分隔,名稱格式為“ namespace/resourcename”。對(duì)于群集范圍資源,只需使用資源名稱。映射中的鍵值對(duì)用分號(hào)分隔。善良的名字是復(fù)數(shù)形式。

      velero backup create backupName --include-cluster-resources=true --ordered-resources 'pods=ns1/pod1,ns1/pod2;persistentvolumes=pv4,pv8' --include-namespaces=ns1 velero backup create backupName --ordered-resources 'statefulsets=ns1/sts1,ns1/sts0' --include-namespaces=ns1

      五 Backup Hooks

      5.1 Backup Hooks

      在執(zhí)行備份時(shí),可以指定一個(gè)或多個(gè)命令,以便在備份 pod 時(shí)在 pod 中的容器中執(zhí)行。這些命令可以配置為在任何自定義操作處理(“ pre”hooks)之前運(yùn)行,或者在所有自定義操作完成并備份了自定義操作指定的任何附加項(xiàng)(“ post”hooks)之后運(yùn)行。注意,鉤子不會(huì)在容器的 shell 中執(zhí)行。

      有兩種方法可以指定鉤子:pod 本身的注釋和備份規(guī)范中的注釋。

      5.2 將 Hooks 指定為 Pod 注釋

      您可以在 pod 上使用以下注解讓 Velero 在備份 pod 時(shí)執(zhí)行一個(gè)鉤子:

      5.2.1 Pre hooks

      pre.hook.backup.velero.io/container

      應(yīng)執(zhí)行命令的容器。默認(rèn)為 pod 中的第一個(gè)容器。可選的。

      pre.hook.backup.velero.io/command

      要執(zhí)行的命令。如果需要多個(gè)參數(shù),將命令指定為 JSON 數(shù)組,例如 ["/usr/bin/uname", “-a”]

      pre.hook.backup.velero.io/on-error

      如果命令返回非零退出代碼,該怎么辦。默認(rèn)為失敗。有效值為失敗并繼續(xù)。可選的。

      pre.hook.backup.velero.io/timeout

      等待命令執(zhí)行的時(shí)間。如果命令超過(guò)超時(shí),則認(rèn)為掛鉤錯(cuò)誤。默認(rèn)為 30 秒。可選的。

      5.2.2 Post hooks

      post.hook.backup.velero.io/container

      應(yīng)執(zhí)行命令的容器。默認(rèn)為 pod 中的第一個(gè)容器。可選的。

      post.hook.backup.velero.io/command

      要執(zhí)行的命令。如果需要多個(gè)參數(shù),將命令指定為 JSON 數(shù)組,例如 ["/usr/bin/uname", “-a”]

      post.hook.backup.velero.io/on-error

      如果命令返回非零退出代碼,該怎么辦。默認(rèn)為失敗。有效值為失敗并繼續(xù)。可選的。

      post.hook.backup.velero.io/超時(shí)

      等待命令執(zhí)行的時(shí)間。如果命令超過(guò)超時(shí),則認(rèn)為掛鉤錯(cuò)誤。默認(rèn)為 30 秒。可選的。

      5.3 在備份規(guī)范中指定鉤子

      請(qǐng)參閱有關(guān)備份 API 類型的文檔,了解如何在備份規(guī)范中指定掛鉤。Backup API Type

      5.4 使用 fsfreeze 的鉤子示例

      此示例將引導(dǎo)您使用 pre 和 post 掛鉤來(lái)凍結(jié)文件系統(tǒng)。凍結(jié)文件系統(tǒng)有助于確保在拍攝快照之前所有掛起的磁盤 I/O 操作都已完成。

      本示例使用 examples/nginx-app/with-pv.yaml。按照您的提供商的steps for your provider此示例。

      5.5 Annotations

      Velero example/nginx-app/with-pv.yaml作為將 pre 和 post 鉤子注釋直接添加到聲明式部署的示例。下面是就地更新對(duì)象的示例。

      kubectl annotate pod -n nginx-example -l app=nginx \ pre.hook.backup.velero.io/command='["/sbin/fsfreeze", "--freeze", "/var/log/nginx"]' \ pre.hook.backup.velero.io/container=fsfreeze \ post.hook.backup.velero.io/command='["/sbin/fsfreeze", "--unfreeze", "/var/log/nginx"]' \ post.hook.backup.velero.io/container=fsfreeze

      現(xiàn)在通過(guò)創(chuàng)建備份來(lái)測(cè)試 pre 和 post 掛鉤。您可以使用 Velero 日志來(lái)驗(yàn)證 pre 和 post 掛鉤是否正在運(yùn)行并無(wú)錯(cuò)誤退出。

      velero backup create nginx-hook-test velero backup get nginx-hook-test velero backup logs nginx-hook-test | grep hookCommand

      5.6 使用多個(gè)命令

      要使用多個(gè)命令,請(qǐng)將目標(biāo)命令包裝在一個(gè) shell 中,并用 ;、&& 或其他 shell 條件結(jié)構(gòu)將它們分開。

      pre.hook.backup.velero.io/command='["/bin/bash", "-c", "echo hello > hello.txt && echo goodbye > goodbye.txt"]'

      六 Restore Reference

      6.1 恢復(fù)到不同的命名空間

      Velero 可以將資源還原到與備份它們的命名空間不同的命名空間中。為此,請(qǐng)使用 --namespace-mappings 標(biāo)志:

      velero restore create RESTORE_NAME \ --from-backup BACKUP_NAME \ --namespace-mappings old-ns-1:new-ns-1,old-ns-2:new-ns-2

      6.2 當(dāng)用戶刪除還原對(duì)象時(shí)會(huì)發(fā)生什么

      還原對(duì)象表示還原操作。還原對(duì)象有兩種類型的刪除:

      使用 velero restore delete 刪除。此命令將刪除代表它的自定義資源及其單獨(dú)的日志和結(jié)果文件。但是,它不會(huì)從集群中刪除它創(chuàng)建的任何對(duì)象。

      使用 kubectl -n velero delete restore 刪除。此命令將刪除代表還原的自定義資源,但不會(huì)刪除對(duì)象存儲(chǔ)中的日志/結(jié)果文件,或在集群中還原期間創(chuàng)建的任何對(duì)象。

      參考鏈接

      https://velero.io/docs/v1.5/disaster-case/

      Kubernetes

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:excel表格怎么將鏈接添加到圖片中
      下一篇:怎么無(wú)法編輯文檔,顯示為只讀(只讀文件是不是不可以編輯)
      相關(guān)文章
      老司机亚洲精品影院无码 | 亚洲AV天天做在线观看| www.亚洲精品| 久久亚洲AV无码精品色午夜 | 亚洲情A成黄在线观看动漫软件 | 亚洲人成人无码网www国产| 国产午夜亚洲精品不卡免下载 | 无码天堂亚洲国产AV| 日韩欧美亚洲国产精品字幕久久久 | 久久久久国产亚洲AV麻豆| 亚洲一本大道无码av天堂| 亚洲一级特黄无码片| 日日噜噜噜噜夜夜爽亚洲精品| 亚洲一线产区二线产区区| 亚洲综合无码无在线观看| 中文字幕亚洲综合小综合在线 | 亚洲人xxx日本人18| 在线观看亚洲AV日韩AV| 亚洲国产av玩弄放荡人妇| 亚洲av乱码中文一区二区三区| 亚洲国产精品嫩草影院| 国产精品亚洲一区二区三区久久 | 亚洲伊人成无码综合网 | 色在线亚洲视频www| 亚洲人成无码网站在线观看 | 日韩亚洲综合精品国产| 亚洲区日韩区无码区| 亚洲中文字幕久久精品无码喷水| 亚洲精品无码不卡在线播放HE| 亚洲AV无码乱码精品国产| 亚洲人午夜射精精品日韩| 亚洲精品国产成人片| 亚洲AV无码第一区二区三区| 久久久青草青青国产亚洲免观 | 亚洲国产成人精品无码区花野真一 | 亚洲国产精品第一区二区| 亚洲视频一区在线| 国产.亚洲.欧洲在线| 久久久久亚洲国产AV麻豆 | 国产亚洲欧美日韩亚洲中文色| 亚洲日韩人妻第一页|