如何將Rancher2.5.x遷移至任意K8S發(fā)行版

本篇文章為大家展示了如何將Rancher2.5.x 遷移至任意K8S發(fā)行版,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián)建站成立與2013年,先為許昌等服務(wù)建站,許昌等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為許昌企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

Rancher v2.5 之前的版本是不支持將 Rancher 遷移到其他集群的,但可以利用一些“黑科技”實(shí)現(xiàn)將 Rancher 遷移到新的集群。

從 Rancher v2.5 開(kāi)始,可以使用 rancher-backup operator 來(lái)備份和恢復(fù) Rancher,rancher-backup 工作時(shí)不需要暴露 etcd,因?yàn)?operator 通過(guò)調(diào)用 kube-apiserver 來(lái)收集資源。我們可以利用此特性將 Rancher 遷移到任何標(biāo)準(zhǔn) Kubernetes 發(fā)行版的集群中。

遷移過(guò)程概要:

  1. 創(chuàng)建 Rancher 備份,并將備份上傳到備份存儲(chǔ)位置

  2. 創(chuàng)建 Rancher local 集群

  3. 使用 Restore 自定義資源從備份中還原到 local 集群

  4. 使用 Helm 安裝 Rancher

遷移先決條件:

  • Rancher 版本必須是 v2.5.0及以上。

  • 如果你要將 Rancher 遷移到一個(gè)新的 Kubernetes 集群,你不需要先在新集群上安裝 Rancher。如果將 Rancher 還原到一個(gè)已經(jīng)安裝了 Rancher 的新集群上,可能會(huì)引起問(wèn)題。

  • 要求使用與第一個(gè)集群中設(shè)置的服務(wù)器 URL 相同的 hostname,本例為:rancher.kingsd.top。

備份存儲(chǔ)位置:

Rancher v2.5 備份支持將備份文件推送到兼容 S3 的對(duì)象存儲(chǔ)(比如:MinIO 或阿里云 OSS),也可以存儲(chǔ)在一個(gè) Persistent Volumes 中??紤]到一些用戶(hù)是離線(xiàn)環(huán)境,而且跨集群使用 Persistent Volumes 的方式比較麻煩,所以本文采用將備份推送到 MinIO 的方式。

MinIO 安裝參考 MinIO 官網(wǎng)(https://docs.min.io/)即可。本文已安裝的 MinIO 地址為:https://rancher.kingsd.top。

安裝單節(jié)點(diǎn) Rancher

為了更好的展現(xiàn)遷移效果,本文將演示 “單節(jié)點(diǎn)” 遷移到 “高可用” 的場(chǎng)景,當(dāng)然,也支持 “高可用” 遷移到 “高可用” 的場(chǎng)景,步驟基本相同。

由于在上面 “遷移先決條件” 中提到的 “要求使用與第一個(gè)集群中設(shè)置的服務(wù)器 URL 相同的 hostname”,所以原集群不能是“使用 Rancher 默認(rèn)的自簽名證書(shū)”的方式安裝,因?yàn)樵摲绞綄⒆詣?dòng)為 Rancher 簽發(fā)證書(shū)。本文采用“使用已有的可信證書(shū)”方式安裝 Rancher:

Rancher 單節(jié)點(diǎn)安裝指南:

https://docs.rancher.cn/docs/rancher2/installation_new/other-installation-methods/single-node-docker/_index

sudo docker run -d --privileged --restart=unless-stopped \
   -p 80:80 -p 443:443 \
   -v /opt/rancher.kingsd.top.pem:/etc/rancher/ssl/cert.pem \
   -v /opt/rancher.kingsd.top.key:/etc/rancher/ssl/key.pem \
   rancher/rancher:v2.5.5 \
   --no-cacerts

然后在 DNS 服務(wù)器上將域名 rancher.kingsd.top 映射到你的 Rancher 服務(wù)器的 IP,隨后你就可以通過(guò) https://rancher.kingsd.top 訪(fǎng)問(wèn)到你的單節(jié)點(diǎn) Rancher UI 了。為了測(cè)試遷移之后依然可以管理下游業(yè)務(wù)集群,我們需要?jiǎng)?chuàng)建一個(gè)自定義集群,并創(chuàng)建幾個(gè)測(cè)試 workload,以便遷移之后做驗(yàn)證。

如何將Rancher2.5.x 遷移至任意K8S發(fā)行版 如何將Rancher2.5.x 遷移至任意K8S發(fā)行版  

備份 Rancher

創(chuàng)建 MinIO Secret

將備份上傳到 MinIO 需要設(shè)置 MinIO 的用戶(hù)名和密碼,在 Rancher 中是以 Secret 的形式存儲(chǔ)的,所以需要在 local 集群中提前創(chuàng)建:

如何將Rancher2.5.x 遷移至任意K8S發(fā)行版  

安裝 rancher-backup operator

  1. 在 Rancher UI 的 Cluster Manager 中,選擇名為 local 的集群

  2. 在右上角單擊 Cluster Explorer

  3. 單擊 Apps

  4. 單擊 Rancher Backup operator

  5. 所有選項(xiàng)默認(rèn)即可,直接點(diǎn)擊 Install 創(chuàng)建 Rancher Backup operator

    rancher-backup 和 rancher-backup-crd 狀態(tài)為 Deployed,代表 rancher-backup operator 成功部署。

    如何將Rancher2.5.x 遷移至任意K8S發(fā)行版

創(chuàng)建備份

  1. 在 Cluster Explorer 中,進(jìn)入左上角的下拉菜單,單擊 Rancher Backups

  2. 選擇 Backups,然后點(diǎn)擊右側(cè) Create

  3. 輸入 Backups 的配置參數(shù):

    如何將Rancher2.5.x 遷移至任意K8S發(fā)行版

  4. 備份創(chuàng)建成功后,備份狀態(tài)為 Completed,備份文件名稱(chēng)為 rancher-backup-1-8f21c185-3caf-4a82-ab8c-8ba425a6667b-2021-01-19T07-12-30Z.tar.gz

    如何將Rancher2.5.x 遷移至任意K8S發(fā)行版

  5. MinIO 頁(yè)面也會(huì)顯示對(duì)應(yīng)的備份文件:

    如何將Rancher2.5.x 遷移至任意K8S發(fā)行版

    至此,Rancher 的備份已經(jīng)創(chuàng)建成功,并且將備份文件推送到了 MinIO。

遷移 Rancher

遷移 Rancher,其實(shí)就是利用在 MinIO 上的備份,將 Rancher 恢復(fù)到新的 Kubernetes 集群上,所以我們需要先創(chuàng)建一個(gè) Kubernetes 集群做為 Rancher 的 local 集群,本例使用 K3s 作為 local 集群。

創(chuàng)建 K3s 集群作為 Local 集群

由于在撰寫(xiě)文章使用的 Rancher 版本為 v2.5.5,此版本不支持 >=v1.20 版本的 Kubernetes 集群作為 local 集群,所以需要指定 K3s 版本為 v1.19.7+k3s1:

curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_VERSION="v1.19.7+k3s1" sh -

安裝 rancher-backup Helm chart

helm repo add rancher-charts https://charts.rancher.io
helm repo update
helm install rancher-backup-crd rancher-charts/rancher-backup-crd -n cattle-resources-system --create-namespace
helm install rancher-backup rancher-charts/rancher-backup -n cattle-resources-system

使用 Restore 自定義資源從備份中還原

本例使用兼容 S3 的對(duì)象存儲(chǔ) MinIO 作為備份源,并且需要使用你的 MinIO 憑證進(jìn)行還原,所以需要在這個(gè)集群中創(chuàng)建一個(gè) MinIO Secret。Secret 數(shù)據(jù)必須有兩個(gè) key,accessKey 和 secretKey,包含 MinIO 憑證,像這樣:

apiVersion: v1
kind: Secret
metadata:
 name: minio-creds
type: Opaque
data:
 accessKey: <Enter your access key>
 secretKey: <Enter your secret key>

這個(gè) secret 可以在任何命名空間中創(chuàng)建,上面的例子中,它將在 default 的命名空間中創(chuàng)建。

在 Restore 自定義資源中,prune 必須設(shè)置為 false。創(chuàng)建一個(gè)像下面例子一樣的 Restore 自定義資源:

# migrationResource.yaml
apiVersion: resources.cattle.io/v1
kind: Restore
metadata:
 name: restore-migration
spec:
 backupFilename: rancher-backup-1-8f21c185-3caf-4a82-ab8c-8ba425a6667b-2021-01-19T07-12-30Z.tar.gz
 prune: false
 # encryptionConfigSecretName: encryptionconfig
 storageLocation:
   s3:
     credentialSecretName: minio-creds
     credentialSecretNamespace: default
     bucketName: rancher-backup
     # folder: ecm1
     # region: us-west-2
     endpoint: minio.kingsd.top

查看 Restore 結(jié)果:

kubectl get restore
NAME                BACKUP-SOURCE   BACKUP-FILE                                                                         AGE   STATUS
restore-migration   S3              rancher-backup-1-8f21c185-3caf-4a82-ab8c-8ba425a6667b-2021-01-19T07-12-30Z.tar.gz   52s   Completed

如果 Restore 有異常,可以通過(guò) cattle-resources-system 命名空間下的 rancher-backup-xxx 查看日志。

使用 Helm 安裝 Rancher

從 ResourceSets(https://github.com/rancher/backup-restore-operator/blob/master/crds/resourceset.yaml) 中可以看到在備份和恢復(fù)過(guò)程中,并沒(méi)有將 Rancher 的 Pod 備份和恢復(fù),所以需要使用 Helm 安裝與第一個(gè)集群相同版本的 Rancher。

# 如果是從 HA 遷移到 HA,不需要重新創(chuàng)建此 secret
kubectl -n cattle-system create secret tls tls-rancher-ingress \
 --cert=/opt/rancher.kingsd.top.pem \
 --key=/opt/rancher.kingsd.top.key

helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
helm install rancher rancher-latest/rancher \
 --namespace cattle-system \
 --set hostname=rancher.kingsd.top \
 --set ingress.tls.source=secret \
 --set rancherImageTag=v2.5.5

此時(shí),你需要在 DNS 服務(wù)器上將域名 rancher.kingsd.top 映射到新的 Rancher 服務(wù)器的 IP,本例為 K3s master 所在的服務(wù)器 IP,你也可以映射到 LB 的 IP。等待 DNS 配置生效,再次使用 https://rancher.kingsd.top 訪(fǎng)問(wèn) Rancher,可以看到 local 集群已經(jīng)替成剛才安裝的 v1.19.7+k3s1 版本的 K3s,并且創(chuàng)建的測(cè)試 workload 正常工作,遷移成功。

如何將Rancher2.5.x 遷移至任意K8S發(fā)行版 如何將Rancher2.5.x 遷移至任意K8S發(fā)行版

上述內(nèi)容就是如何將Rancher2.5.x 遷移至任意K8S發(fā)行版,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站名稱(chēng):如何將Rancher2.5.x遷移至任意K8S發(fā)行版
網(wǎng)頁(yè)路徑:http://muchs.cn/article2/jpdiic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站微信小程序、Google建站公司、網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷(xiāo)型網(wǎng)站建設(shè)