停用混合型機構

本文件將概略說明如何從混合式部署中停用機構。停用組織,代表刪除所有 Kubernetes 叢集中所有 Cassandra 容器中與該組織相關的所有資料。

限制

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

取得機構名稱

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

如要取得組織名稱,以便在本頁的指令中使用:

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

操作說明

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

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

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

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

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

  2. (選用) 如果您已在要刪除的機構中設定 Apigee 遙測 (指標和記錄器),請按照下列步驟重新設定,以便將指標和記錄資料套用至新的機構/專案。
    1. 請為要傳送資料的機構執行這個指令。請務必使用組織的 overrides.yaml 檔案。舉例來說,如果要停用的機構是「test-dev」,overrides.yaml 檔案應包含 org: test-dev 機構欄位。
      helm upgrade telemetry apigee-telemetry/ \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f OVERRIDES_FILE.yaml
      
    2. 執行下列指令,並確保使用正確的組織/專案:
      kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry -oyaml | grep `gcpProjectID:`
  3. 從混合式部署中刪除組織的 Kubernetes 資源。
    1. 確認目前的背景資訊是來源 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           apigee
      
          kubectl config use-context gke_example-org-1_us-west1_example-cluster-2
    2. 刪除虛擬主機。

      針對每個環境群組重複執行這項操作:

      helm -n APIGEE_NAMESPACE delete ENV_GROUP_NAME
      
    3. 刪除環境。針對每個環境重複執行這項操作:
      helm -n APIGEE_NAMESPACE delete ENV_NAME
      
    4. 刪除 Apigee 機構。
      helm -n APIGEE_NAMESPACE delete ORG_NAME
      
  4. 從混合式部署中刪除機構資料。完成這個步驟後,混合式部署作業就會移除所有組織資料。
    1. 執行 apigee-cassandra-default-0 pod:
      kubectl exec -it -n APIGEE_NAMESPACE 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 容器。

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

      請確認這項指令不會傳回錯誤。

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

      drop keyspace KEYSPACE_NAME;

      退出 Cassandra 偵錯用戶端 pod。

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

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