本文件將概略說明如何從混合式部署中停用機構。停用組織,代表刪除所有 Kubernetes 叢集中所有 Cassandra 容器中與該組織相關的所有資料。
限制
一次只能停用一個機構。系統不支援同時停用多個機構。
取得機構名稱
這些操作說明中的部分指令需要使用格式正確的機構名稱。
如要取得組織名稱,以便在本頁的指令中使用:
- 從機構的
overrides.yaml
檔案中擷取機構名稱。 - 如果機構名稱包含任何連字號 (「-」),請將其替換為底線 (「_」)。
操作說明
請按照下列操作說明,從混合式部署中停用機構。
- 備份組織
- 如果尚未啟用,請在混合式部署中啟用備份功能。在多地區設定中,請使用在主要區域運作的混合型部署。如需混合備份的相關資訊,請參閱 Cassandra 備份總覽。
- 使用下列指令觸發混合式備份工作:
kubectl create job -n APIGEE_NAMESPACE --from=cronjob/apigee-cassandra-backup BACKUP_JOB_NAME
BACKUP_JOB_NAME 可以是任何有效的容器名稱。
-
備份工作完成後,請按照「監控備份」中的「檢查備份工作狀態」和「檢查備份記錄」操作說明,確認備份是否成功。
- (選用) 如果您已在要刪除的機構中設定 Apigee 遙測 (指標和記錄器),請按照下列步驟重新設定,以便將指標和記錄資料套用至新的機構/專案。
- 請為要傳送資料的機構執行這個指令。請務必使用組織的
overrides.yaml
檔案。舉例來說,如果要停用的機構是「test-dev」,overrides.yaml
檔案應包含org: test-dev
機構欄位。helm upgrade telemetry apigee-telemetry/ \ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE.yaml
-
執行下列指令,並確保使用正確的組織/專案:
kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry -oyaml | grep `gcpProjectID:`
- 從混合式部署中刪除組織的 Kubernetes 資源。
- 確認目前的背景資訊是來源 Kubernetes 叢集的正確背景資訊:
kubectl config current-context
視需要設定 Kubernetes 結構定義。
列出目前的背景資訊,查看每個叢集的背景資訊名稱:
kubectl config get-contexts
將結構定義設為要停用的叢集和區域:
kubectl config use-context CONTEXT_NAME
其中 CONTEXT_NAME 是叢集和區域的內容名稱。
例如:
kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE gke_example-org-1_us-central1_example-cluster-1 gke_example-org-1_us-central1_example-cluster-1 gke_example-org-1_us-central1_example-cluster-1 apigee * gke_example-org-1_us-central1_example-cluster-2 gke_example-org-1_us-central1_example-cluster-2 gke_example-org-1_us-central1_example-cluster-2 apigee gke_example-org-1_us-west1_example-cluster-2 gke_example-org-1_us-west1_example-cluster-2 gke_example-org-1_us-west1_example-cluster-2 apigeekubectl config use-context gke_example-org-1_us-west1_example-cluster-2
- 刪除虛擬主機。
針對每個環境群組重複執行這項操作:
helm -n APIGEE_NAMESPACE delete ENV_GROUP_NAME
- 刪除環境。針對每個環境重複執行這項操作:
helm -n APIGEE_NAMESPACE delete ENV_NAME
- 刪除 Apigee 機構。
helm -n APIGEE_NAMESPACE delete ORG_NAME
- 確認目前的背景資訊是來源 Kubernetes 叢集的正確背景資訊:
- 從混合式部署中刪除機構資料。完成這個步驟後,混合式部署作業就會移除所有組織資料。
- 執行
apigee-cassandra-default-0
pod:kubectl exec -it -n APIGEE_NAMESPACE apigee-cassandra-default-0 -- /bin/bash
- 執行下列指令。複製輸出內容中顯示的所有名稱清單。稍後會用到這個清單。
find /opt/apigee/data/apigee-cassandra/ -iname '*ORG_NAME_hybrid' -type d -maxdepth 2 -printf "%f\n"
如要瞭解如何尋找及準備 ORG_NAME,請參閱「取得組織名稱」一文。
退出
apigee-cassandra-default-0
容器。 - 按照「建立用於偵錯的用戶端容器」一文的指示建立 Cassandra 偵錯用戶端 Pod。收到
cqlsh
提示後,請繼續執行下一個步驟。 - 在
cqlsh
提示中執行下列指令:desc keyspaces;
請確認這項指令不會傳回錯誤。
針對先前從
apigee apigee-cassandra-default-0
建立的清單中的每個名稱,執行下列指令:drop keyspace KEYSPACE_NAME;
退出 Cassandra 偵錯用戶端 pod。
- 執行所有 Cassandra pod 的滾動式重新啟動作業。只要每次只重新啟動一個 Cassandra pod,您可以以任何順序重新啟動 Cassandra pod。如果是多區域部署作業,請針對每個混合式區域的所有 Cassandra pod 執行逐步重新啟動。
執行下列指令,並確認狀態顯示為「Running」:
kubectl get apigeeds -n APIGEE_NAMESPACE
使用下列指令重新啟動單一 Cassandra Pod:
kubectl delete pod -n APIGEE_NAMESPACE CASSANDRA_POD_NAME
使用以下指令,等待 pod 進入
Running
狀態:kubectl get pods -n APIGEE_NAMESPACE
重新啟動下一個 Cassandra pod。
- 執行
cqlsh
指令後,請對混合式部署中的所有 Cassandra Pod 執行下列指令。如果是多區域混合式部署,請在所有混合式區域的所有 Cassandra 容器上執行指令。kubectl exec -it -n APIGEE_NAMESPACE CASSANDRA_POD_NAME -- /bin/bash
find /opt/apigee/data/apigee-cassandra/ -iname '*ORG_NAME_hybrid' -type d -maxdepth 2
如要瞭解如何尋找及準備 ORG_NAME,請參閱「取得組織名稱」一文。
find /opt/apigee/data/apigee-cassandra/ -iname '*ORG_NAME_hybrid' -type d -maxdepth 2 -exec rm -rf {} +
-
退出 Cassandra pod。
- 執行