ハイブリッド組織の廃止

このドキュメントでは、ハイブリッド デプロイから組織を廃止する手順について簡単に説明します。組織を廃止すると、すべての Kubernetes クラスタのすべての Cassandra Pod で、その組織に関連するすべてのデータが削除されます。

制限事項

一度に廃止できる組織は 1 つのみです。複数の組織を同時に廃止することはできません。

組織名を取得する

この手順の一部のコマンドでは、適切な形式の組織名を使用する必要があります。

このページのコマンドで使用する組織名を取得する方法は次のとおりです。

  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(Metrics と Logger)を設定している場合、次の手順に沿って指標とログデータが新しい組織またはプロジェクトに適用されるように再構成します。
    1. データを送信する組織に対して次のコマンドを実行します。組織の overrides.yaml ファイルを使用してください。たとえば、廃止する組織が「test-dev」の場合、overrides.yaml ファイルには org: test-dev 組織フィールドを含める必要があります。

      Helm

      helm upgrade telemetry apigee-telemetry/ \
        --namespace apigee \
        --atomic \
        -f OVERRIDES_FILE.yaml
      

      apigeectl

      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml --telemetry
    2. 次のコマンドを実行し、正しい組織またはプロジェクトを使用してください。
      kubectl -n apigee get apigeetelemetry apigee-telemetry -oyaml | grep `gcpProjectID:`
  3. ハイブリッド デプロイから組織の Kubernetes リソースを削除します。

    Helm

    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 delete ENV_GROUP_NAME
      
    3. 環境を削除します。この手順を環境ごとに繰り返します。
      helm -n apigee delete ENV_NAME
      
    4. Apigee 組織を削除します。
      helm -n apigee delete ORG_NAME
      

    apigeectl

    組織の 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 は、一度に 1 つだけ再起動するのであれば任意の順序で再起動できます。マルチリージョン デプロイの場合は、各ハイブリッド リージョンのすべての 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 を終了します。