本文說明如何從混合式部署中停用機構。停用機構會刪除所有 Kubernetes 叢集內所有 Cassandra Pod 中,與該機構相關的所有資料。
限制
一次只能停用一個機構。系統不支援同時停用多個機構。
取得機構名稱
這些操作說明中的部分指令需要使用格式正確的機構名稱。
如要在本頁的指令中使用機構名稱,請按照下列步驟操作:
- 從機構的
overrides.yaml檔案擷取機構名稱。 - 如果機構名稱包含任何破折號 (「-」),請將破折號替換為底線 (「_」)。
操作說明
請按照下列操作說明,從混合式部署中停用機構。
- 備份機構
- 如果尚未啟用,請在混合式部署中啟用備份功能。在多區域設定中,請使用在主要區域運作的混合式部署。如需混合備份的相關資訊,請參閱「Cassandra 備份總覽」。
- 使用下列指令觸發混合備份工作:
kubectl create job -n apigee --from=cronjob/apigee-cassandra-backup BACKUP_JOB_NAME
BACKUP_JOB_NAME 可以是任何有效的容器名稱。
- (選用) 如果您已在要刪除的機構中設定 Apigee Telemetry (指標和記錄器),請按照下列步驟重新設定,讓指標和記錄資料套用至新的機構/專案。
- 請為要傳送資料的機構執行這項指令。請務必使用機構的
overrides.yaml檔案。舉例來說,如果要停用「test-dev」機構,overrides.yaml檔案應包含org: test-dev機構欄位。helm upgrade telemetry apigee-telemetry/ \ --namespace apigee \ --atomic \ -f OVERRIDES_FILE.yaml
Error: UPGRADE FAILED: "ORG_NAME" has no deployed releases -
執行這項指令,請務必使用正確的機構/專案:
kubectl -n apigee 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-contextsCURRENT 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 delete ENV_GROUP_NAME
- 刪除環境。針對每個環境重複執行下列步驟:
helm -n apigee delete ENV_NAME
- 刪除 Apigee 機構。
helm -n apigee delete ORG_NAME
- 確認目前的內容是來源 Kubernetes 叢集的正確內容:
- 從混合式部署中刪除機構資料。完成這個步驟後,所有機構資料都會從混合式部署中移除。
- 執行進入
apigee-cassandra-default-0Pod 的指令:kubectl exec -it -n apigee 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-0Pod。 - 如要建立 Cassandra 偵錯用戶端 Pod,請參閱「建立用於偵錯的用戶端容器」。收到
cqlsh提示後,請繼續下一個步驟。 - 在
cqlsh提示字元中執行下列指令:desc keyspaces;
確認這項指令未傳回任何錯誤。
針對先前從
apigee apigee-cassandra-default-0建立的清單中的每個名稱, 執行下列指令:drop keyspace
; 結束 Cassandra 偵錯用戶端 Pod。
- 對所有 Cassandra Pod 執行滾動式重新啟動。只要一次只重新啟動一個 Cassandra Pod,重新啟動 Cassandra Pod 的順序不拘。如果是多區域部署,請在每個混合區域中,對所有 Cassandra Pod 執行滾動重新啟動。
執行下列指令,確認狀態顯示「Running」:
kubectl get apigeeds -n apigee
使用下列指令重新啟動單一 Cassandra Pod:
kubectl delete pod -n apigee CASSANDRA_POD_NAME
使用下列指令,等待 Pod 達到
Running狀態:kubectl get pods -n apigee
重新啟動下一個 Cassandra Pod。
- 執行
cqlsh指令後,請在混合式部署中的所有 Cassandra Pod 上執行下列指令。如果是多區域混合式部署,請在所有混合式區域的所有 Cassandra Pod 上執行指令。kubectl exec -it -n apigee 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。
- 執行進入