回滾
本頁面概述如何在升級後將 Rancher 回滾到先前版本。
在以下情 況下,請按照本頁面的說明操作:
- 執行中的 Rancher 實例在備份完成後已升級到較新版本。
- 上游(本地)叢集與進行備份的位置相同。
- 按照以下步驟來遷移 Rancher。
- 如果您需要將 Rancher 還原到相同 Rancher 版本的先前狀態,請參閱還原文件。
特殊場景的替代步驟
在以下場景中進行回滾需要執行替代步驟:
- 從 v2.6.4 及更高版本回滾到 v2.6.x 的較早版本。
- 從 v2.7.7 及更高版本回滾到 v2.7.x 的較早版本。
在 Rancher v2.6.4 中,cluster-api 模組從 v0.4.4 升級到 v1.0.2。cluster-api v1.0.2 反過來將其 Custom Resource Definitions (CRD) 的 apiVersion 從 cluster.x-k8s.io/v1alpha4 升級到 cluster.x-k8s.io/v1beta1。使用較舊 apiVersion (v1alpha4) 的 Custom Resources (CR) 與 v1beta1 不相容,當您嘗試從 Rancher v2.6.4 移動到 Rancher v2.6.x 的任何先前版本時,這會導致回滾失敗。
在 Rancher v2.7.7 中,應用程式 rancher-provisioning-capi 會自動安裝在上游(本地)叢集上,作為嵌入式 cluster-api 控制器的替代品。如果上游叢集同時包含該應用程式和 Rancher v2.7.6 及更早版本,則會發生衝突和意外錯誤。因此,如果您嘗試從 Rancher v2.7.7 移動到 Rancher v2.7.x 的任何先前版本,則需要執行替代步驟。
步驟 1:清理上游(本地)叢集
為了避免回滾失敗,請在嘗試還原操作或回滾之前,按照這些說明執行腳本:
cleanup.sh:清理叢集。verify.sh:檢查叢集中是否存在任何 Rancher 相關資源。
在執行 cleanup.sh 時會有停機時間,因為該腳本會刪除 Rancher 建立的資源。
結果: 上游(本地)叢集上的所有 Rancher 相關資源應該已清理完畢。
有關更多詳細資訊和原始碼,請參閱 rancher/rancher-cleanup 儲存庫。
步驟 2:還原備份並啟動 Rancher
此時,上游叢集上應該沒有 Rancher 相關資源。因此,下一步將與將 Rancher 遷移到不包含 Rancher 資源的新叢集相同。
按照這些說明安裝 Rancher-Backup Helm chart 並將 Rancher 還原到其先前狀態。 請記住:
- 可以跳過步驟 3,因為如果之前安裝過 Cert-Manager 應用程式,它應該仍然存在於上游(本地)叢集上。
- 在步驟 4,安裝您打算回滾到的 Rancher 版本。
回滾到 Rancher v2.5.0+
要回滾到 Rancher v2.5.0+,請使用 Rancher Backups 應用程式並從備份還原 Rancher。
回滾後,Rancher 必須使用較低/先前版本啟動。
透過建立 Restore 自訂資源來執行還原。
-
按照本頁面的說明在備份的同一叢集上還原 Rancher。要將 Rancher 遷移到新叢集,請按照步驟遷移 Rancher。
-
在同一設定上還原 Rancher 時,Rancher 部署在還原開始之前會手動縮減規模,然後操作員將在還原完成後將其擴展回來。因此,在還原完成之前,Rancher 及其 UI 將不可用。在 UI 不可用時,使用原始叢集 kubeconfig 和還原 YAML 檔案:
kubectl create -f restore.yaml。
步驟 1:建立 Restore 自訂資源
-
點擊 ☰ > Cluster Management。
-
前往本地叢集並點擊 Explore。
-
在左側導覽列中,點擊 Rancher Backups > Restore。
備註如果 Rancher Backups 應用程式不可見,您需要從 Apps 中的 Charts 頁面安裝它。有關更多資訊,請參閱此處。
-
點擊 Create。
-
要使用 YAML 編輯器,您可以點擊 Create > Create from YAML。輸入 Restore YAML。以下是 Restore 自訂資源的範例:
apiVersion: resources.cattle.io/v1
kind: Restore
metadata:
name: restore-migration
spec:
backupFilename: backup-b0450532-cee1-4aa1-a881-f5f48a007b1c-2020-09-15T07-27-09Z.tar.gz
encryptionConfigSecretName: encryptionconfig
storageLocation:
s3:
credentialSecretName: s3-creds
credentialSecretNamespace: default
bucketName: rancher-backups
folder: rancher
region: us-west-2
endpoint: s3.us-west-2.amazonaws.com -
點擊 Create。
結果: 備份檔案已建立並更新到目標儲存位置。資源按以下順序還原:
- Custom Resource Definitions (CRD)
- 叢集範圍的資源
- 命名空間範圍的資源
要檢查還原進度,您可以檢查操作員的日誌。按照以下步驟取得日誌:
kubectl get pods -n cattle-resources-system
kubectl logs -n cattle-resources-system -f
步驟 2:回滾到先前的 Rancher 版本
可以使用 Helm CLI 回滾 Rancher。要回滾到先前版本:
helm rollback rancher -n cattle-system
如果先前修訂版本不是預期目標,您可以指定要回滾到的修訂版本。要查看部署歷史記錄:
helm history rancher -n cattle-system
確定目標修訂版本後,執行回滾。此範例將回滾到修訂版本 3:
helm rollback rancher 3 -n cattle-system
回滾到 Rancher v2.2-v2.4+
要回滾到 v2.5 之前的 Rancher,請按照此處詳述的程序:還原備份 — Kubernetes 安裝還原 Rancher 伺服器叢集的快照將使 Rancher 恢復到快照時的版本和狀態。
有關如何回滾使用 Docker 安裝的 Rancher 的資訊,請參閱此頁面。
託管叢集對其狀態具有權威性。這意味著還原 Rancher 伺服器不會還原在拍攝快照後在託管叢集上進行的工作負載部署或變更。
回滾到 Rancher v2.0-v2.1
不再支援回滾到 Rancher v2.0-v2.1。回滾到這些版本的說明保留在此處,僅用於無法升級到 Rancher v2.2+ 的情況。