日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

如何备份和还原您的Kubernetes集群资源和持久卷?

發(fā)布時(shí)間:2023/12/4 编程问答 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何备份和还原您的Kubernetes集群资源和持久卷? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

眾所周知,Kubernetes可以協(xié)調(diào)連接在一起,作為一個(gè)工作單元,形成高可用性的計(jì)算機(jī)集群。Kubernetes包含許多抽象概念,這些抽象概念允許將容器化的應(yīng)用程序部署到集群中,而無(wú)需將它們附加到單獨(dú)的機(jī)器上。

簡(jiǎn)而言之,Kubernetes擁有以下特性:

  • 便攜式:公有、私有、混合、多云

  • 可擴(kuò)展:模塊化、可插拔、可掛鉤、可組合

  • 自我修復(fù):自動(dòng)放置、自動(dòng)重啟、自動(dòng)復(fù)制、自動(dòng)縮放

在本文中,我們將介紹如何使用Velero開(kāi)源工具備份和還原Kubernetes集群資源和持久卷的步驟。

第一節(jié) 為什么要備份?

首先,讓我們了解您需要使用備份的典型方案,如果從災(zāi)難中恢復(fù),則可以減少恢復(fù)時(shí)間。Kubernetes 資源從一個(gè)集群遷移到另一個(gè)集群或更高版本的 Kubernetes ,需要復(fù)制環(huán)境以進(jìn)行調(diào)試、開(kāi)發(fā)等。

現(xiàn)在我們已經(jīng)清楚了為什么需要備份了,接下來(lái)我們可以檢查要備份的對(duì)象列表。

要備份什么?Kubernetes資源存儲(chǔ)在etcd存儲(chǔ)中。etcd是一個(gè)一致且高度可用的鍵值存儲(chǔ),用作所有集群數(shù)據(jù)的 Kubernetes 的后備存儲(chǔ)。您可以在官方文檔中找到有關(guān) etcd 的詳細(xì)信息。集群中運(yùn)行的有狀態(tài)應(yīng)用程序的應(yīng)用程序數(shù)據(jù),即持久卷。

第二節(jié) Velero如何運(yùn)作

Velero( 以前稱(chēng)為Heptio Ark )為您提供了備份和還原 Kubernetes 集群資源和持久卷的工具。

Velero包含:

  • Ivacy VPN

  • 在集群上運(yùn)行的服務(wù)器

  • 在本地運(yùn)行的命令行客戶(hù)端

每個(gè)Velero操作(例如:按需備份、計(jì)劃備份、還原等)都是自定義資源,使用Kubernetes自定義資源(CRD)定義并存儲(chǔ)在etcd存儲(chǔ)中。

當(dāng)你運(yùn)行命令 velero backup create test-backup:時(shí)。

1.Velero客戶(hù)端調(diào)用Kubernetes API服務(wù)器以創(chuàng)建一個(gè) Backup 對(duì)象。

2.BackupController 看起來(lái)像一個(gè)新的 Backup 對(duì)象并執(zhí)行驗(yàn)證。

3.BackupController 開(kāi)始備份操作。它通過(guò)查詢(xún)API服務(wù)器以獲取資源來(lái)收集數(shù)據(jù)以進(jìn)行備份。

4.BackupController 調(diào)用對(duì)象存儲(chǔ)服務(wù)(例如AWS S3)以上傳備份文件。

在下一節(jié)中,我們將介紹有關(guān)如何備份和還原Kubernetes集群資源和持久卷的步驟。

第三節(jié) 先決條件

以下是此快速入門(mén)所需的先決條件:

1.具有Kubernetes最新穩(wěn)定版本的集群
2.Kubectl CLI

在安裝之前,請(qǐng)檢查我們是否具有正確的Kubernetes版本。

步驟#1 下載Velero

使用以下命令下載最新版本的Velero:

curl -LO https://get.helm.sh/helm-v3.0.0-linux-amd64.tar.gz

使用Linux或者其他平臺(tái)的朋友,請(qǐng)參見(jiàn)發(fā)行頁(yè)面的說(shuō)明。

解壓縮下載文件并將velero可執(zhí)行文件移至/ usr / local / bin或您的路徑。

在您的本地目錄中創(chuàng)建特定于Velero的憑證文件(credentials-velero)。

echo "[default]?

aws_access_key_id = minio

aws_secret_access_key = minio123" > credentials-velero

Velero需要合適的存儲(chǔ)提供商來(lái)存儲(chǔ)備份和快照數(shù)據(jù),在本演示中,我們將使用Minio,這是一個(gè)在本地集群上運(yùn)行的S3兼容存儲(chǔ)服務(wù),Minio實(shí)例將使用上述憑據(jù)。?

現(xiàn)在我們已經(jīng)準(zhǔn)備好憑據(jù)和群集,接下來(lái)就可以安裝Velero服務(wù)器了。

步驟#2 安裝Velero服務(wù)器

在以下步驟中,我們將啟動(dòng)服務(wù)器和本地存儲(chǔ)服務(wù)。在Velero文件夾中,運(yùn)行以下命令:

使用以下命令配置本地存儲(chǔ)服務(wù):

kubectl apply -f examples/minio/00-minio-deployment.yaml

使用以下命令啟動(dòng)Velero服務(wù)器:

velero install \--provider aws \--bucket velero \--secret-file ./credentials-velero \--use-volume-snapshots=false \--backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://minio.velero.svc:9000

現(xiàn)在,我們假設(shè)Velero在本地集群中運(yùn)行,而沒(méi)有能夠提供快照的卷。

檢查是否成功創(chuàng)建部署了Velero。

步驟#3?部署示例應(yīng)用程序

下一步是使用以下命令在集群上部署示例nginx應(yīng)用程序:

kubectl apply -f velero/examples/nginx-app/base.yaml

檢查是否成功創(chuàng)建了示例應(yīng)用程序部署。

步驟#4?備份

現(xiàn)在,我們將為與 app = nginx 標(biāo)簽選擇器匹配的任何對(duì)象創(chuàng)建備份:

velero backup create nginx-backup --selector app=nginx

如果要備份除匹配標(biāo)簽的對(duì)象以外的所有對(duì)象,則可以使用“ backup notin(ignore)”選項(xiàng)。

還有一些選項(xiàng)可用于基于 cron 表達(dá)式創(chuàng)建備份計(jì)劃。

要驗(yàn)證備份是否已完成,請(qǐng)使用 describe 命令,如下所示:

velero backup describe nginx-backup

現(xiàn)在我們已經(jīng)完成了備份操作,為了測(cè)試還原操作,我們將刪除命名空間。

驗(yàn)證是否刪除了 nginx 服務(wù)和部署:

通常需要幾分鐘才能完全清理名稱(chēng)空間。

步驟#5 Restore

要列出我們創(chuàng)建的備份,請(qǐng)使用以下命令:

velero restore get

要恢復(fù)我們創(chuàng)建的備份,請(qǐng)使用以下命令:

velero restore create --from-backup nginx-backup

還原完成后,您可以檢查還原的部署是否返回名稱(chēng)空間:

如果在還原操作過(guò)程中出現(xiàn)錯(cuò)誤或警告,則可以使用以下命令檢查詳細(xì)信息:

velero restore describe <RESTORE_NAME>

恭喜! 我們已經(jīng)成功進(jìn)行了備份和還原。

如果由于某些限制而無(wú)法使用Velero,則可以始終使用 Kubectl CLI 從現(xiàn)有 Kubernetes 集群中導(dǎo)出資源定義,然后將其應(yīng)用于目標(biāo)集群。?

以下是導(dǎo)出對(duì)象的命令。

kubectl get deployment -o=yaml --export > deployments.yaml

第四節(jié) 局限性

以下是Velero的已知限制:

  • Velero當(dāng)前每個(gè)提供商都支持一套憑據(jù)。 尚無(wú)法在不同的位置使用不同的憑據(jù)。

  • 卷快照受提供程序創(chuàng)建快照位置限制。 例如,AWS和Azure不允許您在不同卷所在區(qū)域中創(chuàng)建卷快照。

  • 每個(gè)Velero備份每個(gè)卷都有一個(gè)BackupStorageLocation和一個(gè)VolumeSnapshotLocation。無(wú)法將單個(gè) Velero 備份同時(shí)發(fā)送到多個(gè)備份存儲(chǔ)位置,也不能將單個(gè)卷快照同時(shí)發(fā)送到多個(gè)位置。

  • 不支持跨提供商快照。

總結(jié)

以上是生活随笔為你收集整理的如何备份和还原您的Kubernetes集群资源和持久卷?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。