停用混合型機構

本文說明如何從混合式部署中停用機構。停用機構會刪除所有 Kubernetes 叢集內所有 Cassandra Pod 中,與該機構相關的所有資料。

限制

一次只能停用一個機構。系統不支援同時停用多個機構。

取得機構名稱

這些操作說明中的部分指令需要使用格式正確的機構名稱。

如要在本頁的指令中使用機構名稱,請按照下列步驟操作:

  1. 從機構的 overrides.yaml 檔案擷取機構名稱。
  2. 如果機構名稱包含任何破折號 (「-」),請將破折號替換為底線 (「_」)。

操作說明

請按照下列操作說明,從混合式部署中停用機構。

  1. 備份機構
    1. 如果尚未啟用,請在混合式部署中啟用備份功能。在多區域設定中,請使用在主要區域運作的混合式部署。如需混合備份的相關資訊,請參閱「Cassandra 備份總覽」。
    2. 使用下列指令觸發混合備份工作:

      kubectl create job -n apigee --from=cronjob/apigee-cassandra-backup BACKUP_JOB_NAME

      BACKUP_JOB_NAME 可以是任何有效的容器名稱。

    3. 備份作業完成後,請按照「監控備份作業」中的「檢查備份作業狀態」和「檢查備份記錄」操作說明,確認備份作業是否成功。

  2. (選用) 如果您已在要刪除的機構中設定 Apigee Telemetry (指標和記錄器),請按照下列步驟重新設定,讓指標和記錄資料套用至新的機構/專案。
    1. 請為要傳送資料的機構執行這項指令。請務必使用機構的 overrides.yaml 檔案。舉例來說,如果機構要停用「test-dev」,overrides.yaml 檔案應包含 org: test-dev 機構欄位。

      apigeectl apply --telemetry -f overrides.yaml

    2. 執行這項指令,請務必使用正確的機構/專案:
      kubectl -n apigee get apigeetelemetry apigee-telemetry -oyaml | grep `gcpProjectID:`
  3. 從混合式部署中刪除機構的 Kubernetes 資源。

    請務必使用機構的 overrides.yaml 檔案。舉例來說,如果要停用「test-dev」機構,overrides.yaml 檔案應包含 org: test-dev 機構欄位。

    如果是多區域混合式部署,請針對每個區域的每個混合式部署執行這些指令。

    kubectl config current-context # Verify the current context is the correct context for the hybrid deployment
    apigeectl check-ready -f overrides.yaml # Check the deployment status
    apigeectl delete --settings virtualhost -f overrides.yaml
    apigeectl check-ready -f overrides.yaml # Check the deployment status
    apigeectl delete --all-envs -f overrides.yaml
    apigeectl check-ready -f overrides.yaml # Check the deployment status
    apigeectl delete --org -f overrides.yaml
    apigeectl check-ready -f overrides.yaml # Check the deployment status
        
  4. 從混合式部署中刪除機構資料。完成這個步驟後,所有機構資料都會從混合式部署中移除。
    1. 執行進入 apigee-cassandra-default-0 Pod 的指令:
      kubectl exec -it -n apigee apigee-cassandra-default-0 -- /bin/bash
    2. 執行下列指令。複製輸出內容中顯示的所有名稱清單。 稍後會用到這份清單。
      find /opt/apigee/data/apigee-cassandra/ -iname '*ORG_NAME_hybrid' -type d -maxdepth 2 -printf "%f\n"

      如要瞭解如何尋找及準備 ORG_NAME,請參閱「取得機構名稱」。

      結束 apigee-cassandra-default-0 Pod。

    3. 如要建立 Cassandra 偵錯用戶端 Pod,請參閱「建立用於偵錯的用戶端容器」。收到 cqlsh 提示後,請繼續下一個步驟。
    4. cqlsh 提示字元中執行下列指令:
      desc keyspaces;

      確認這項指令未傳回任何錯誤。

      針對先前從 apigee apigee-cassandra-default-0 建立的清單中的每個名稱, 執行下列指令:

      drop keyspace ;

      結束 Cassandra 偵錯用戶端 Pod。

    5. 對所有 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。

    6. 執行 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 {} +
    7. 退出 Cassandra Pod。