本頁面將概略說明如何在 Apigee hybrid 中還原 Cassandra。
為什麼要使用還原功能?
發生災難性故障時 (例如 Apigee 混合執行個體因災難而發生無法復原的資料遺失),您可以使用備份功能從頭開始還原 Apigee 基礎架構。還原作業會從備份位置取得資料,並將資料還原至具有相同節點數量的新 Cassandra 叢集。系統不會從舊 Cassandra 叢集擷取任何叢集資料。復原程序的目標是使用快照中的備份資料,將 Apigee 混合式安裝作業還原至先前的運作狀態。
在下列情況下,我們不建議使用備份還原資料:
- Cassandra 節點發生故障。
- 不小心刪除
apps
、developers
和api_credentials
等資料。 - 多地區混合部署中,有一或多個地區發生中斷。
Apigee Cassandra 部署和營運架構可處理單一地區的備援和容錯功能。在大多數情況下,建議採用混合型多區域實際生產環境,這表示區域故障時,可以使用區域停用和擴充程序從其他運作中的區域復原,而非從備份復原。
開始從 Cassandra 備份執行還原作業前,請注意下列事項:
- 停機時間:在還原期間,服務會暫時停止運作。
- 資料遺失:在最後一次有效備份和還原作業完成之間,資料會有所遺失。
- 還原時間:還原時間取決於資料和叢集的大小。
- 選擇性還原資料:您無法只選取特定資料來還原。還原作業會還原所選的整個備份。
多區域還原
如果您在多個區域安裝 Apigee hybrid,則必須檢查要還原的區域的覆寫檔案,確保 cassandra:hostNetwork
已設為 false
,再執行還原作業。詳情請參閱「在多個區域中還原」。
必要條件
請確認下列所有必要條件均已成功完成。請先調查所有必要條件失敗情形,再繼續進行還原作業。
- 使用下列指令,確認所有 Cassandra Pod 都已啟用並執行。
kubectl get pods -n APIGEE_NAMESPACE -l app=apigee-cassandra
輸出內容應如以下範例所示:
NAME READY STATUS RESTARTS AGE apigee-cassandra-default-0 1/1 Running 0 14m apigee-cassandra-default-1 1/1 Running 0 13m apigee-cassandra-default-2 1/1 Running 0 11m exampleuser@example hybrid-files %
- 使用下列指令,確認 Cassandra statefulset 顯示所有 Pod 皆在執行中。
kubectl get sts -n APIGEE_NAMESPACE -l app=apigee-cassandra
輸出內容應如以下範例所示:
NAME READY AGE apigee-cassandra-default 3/3 15m
- 使用下列指令,確認 ApigeeDatastore 資源處於「執行中」狀態。
kubectl get apigeeds -n APIGEE_NAMESPACE
輸出內容應如以下範例所示:
NAME STATE AGE default running 16m
- 請使用下列指令,確認所有 Cassandra PVC 皆處於 Bound 狀態。
kubectl get pvc -n APIGEE_NAMESPACE -l app=apigee-cassandra
輸出內容應如以下範例所示:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE cassandra-data-apigee-cassandra-default-0 Bound pvc-a14184e7-8745-4b30-8069-9d50642efe04 10Gi RWO standard-rwo 17m cassandra-data-apigee-cassandra-default-1 Bound pvc-ed129dcb-4706-4bad-a692-ac7c78bad64d 10Gi RWO standard-rwo 15m cassandra-data-apigee-cassandra-default-2 Bound pvc-faed0ad1-9019-4def-adcd-05e7e8bb8279 10Gi RWO standard-rwo 13m
- 請使用下列指令,確認所有 Cassandra PV 皆處於 Bound 狀態。
kubectl get pv -n APIGEE_NAMESPACE
輸出內容應如以下範例所示:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pvc-a14184e7-8745-4b30-8069-9d50642efe04 10Gi RWO Delete Bound apigee/cassandra-data-apigee-cassandra-default-0 standard-rwo 17m pvc-ed129dcb-4706-4bad-a692-ac7c78bad64d 10Gi RWO Delete Bound apigee/cassandra-data-apigee-cassandra-default-1 standard-rwo 16m pvc-faed0ad1-9019-4def-adcd-05e7e8bb8279 10Gi RWO Delete Bound apigee/cassandra-data-apigee-cassandra-default-2 standard-rwo 14m
- 請使用下列指令,確認 Apigee Controller 資源處於「Running」狀態。
kubectl get pods -n APIGEE_NAMESPACE-system -l app=apigee-controller
輸出內容應如以下範例所示:
NAME READY STATUS RESTARTS AGE apigee-controller-manager-856d9bb7cb-cfvd7 2/2 Running 0 20m
如何還原?
視 Apigee hybrid 是部署在單一區域還是多個區域而定,Cassandra 的還原步驟會略有不同。如需詳細的還原步驟,請參閱下列說明文件: