GKE on AWS のアンインストール

このトピックでは、GKE on AWS をアンインストールする方法について説明します。

始める前に

この操作を行うには、AWS 管理サービスで GKE を認証します。

GKE on AWS リソースに接続するには、次の操作を行います。既存の AWS VPC(または VPC への直接接続)があるか、管理サービスの作成時に専用の VPC を作成したかに基づいて、以下の手順を実施します。

既存の VPC

既存の VPC への直接接続または VPN 接続がある場合は、このトピックのコマンドから env HTTP_PROXY=http://localhost:8118 行を省略します。

専用の VPC

専用の VPC で管理サービスを作成すると、GKE on AWS にパブリック サブネットの踏み台インスタンスが含まれます。

管理サービスに接続するには、次の手順を実施します。

  1. GKE on AWS 構成のディレクトリに移動します。このディレクトリは、管理サービスをインストールしたときに作成したものです。

    cd anthos-aws

  2. トンネルを開くには、bastion-tunnel.sh スクリプトを実行します。トンネルは localhost:8118 に転送されます。

    踏み台インスタンスへのトンネルを開くには、次のコマンドを実行します。

    ./bastion-tunnel.sh -N
    

    SSH トンネルからのメッセージがこのウィンドウに表示されます。接続を閉じる準備ができたら、Ctrl+C を使用するか、ウィンドウを閉じて処理を停止します。

  3. 新しいターミナルを開き、anthos-aws ディレクトリに移動します。

    cd anthos-aws
  4. kubectl を使用してクラスタに接続できることを確認します。

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl cluster-info
    

    出力には、Management Service API サーバーの URL が含まれます。

ユーザー クラスタの削除

ユーザー クラスタを削除するには、kubectl を使用します。AWS の GKE はすべてのノードを正常にシャットダウンします。Pod は SIGTERM を受け取り、猶予期間の後に SIGKILL を受け取ります。Pod が停止すると、管理サービスは AWS リソースの削除を開始します。

ユーザー クラスタを削除するには、次の手順を行います。

  1. anthos-aws ディレクトリから anthos-gke を使用して、コンテキストをユーザー クラスタに切り替えます。

    cd anthos-aws
    env HTTPS_PROXY=http://localhost:8118 \
      anthos-gke aws clusters get-credentials CLUSTER_NAME
    CLUSTER_NAME は、ユーザー クラスタ名に置き換えます。

  2. 作成したロードバランサ Ingress または PersistentVolumeClaim リソースを削除します。

    1. 次の kubectl コマンドを使用して、ユーザー クラスタに残りのロードバランサ サービスがあるかどうかを確認します。

      env HTTPS_PROXY=http://localhost:8118 \
        kubectl get services
      
    2. 次の kubectl コマンドを使用して、ユーザー クラスタに残りの PersistentVolumeClaim があるかどうかを確認します。

      env HTTPS_PROXY=http://localhost:8118 \
        kubectl get persistentvolumeclaim
      
    3. kubectl delete を使用して、作成した残りの Service または PersistentVolumeClaim を削除します。たとえば、ロードバランサ my-lb-service を削除するには、次のコマンドを実行します。

      env HTTPS_PROXY=http://localhost:8118 \
        kubectl delete service my-lb-service
      

      たとえば、PersistentVolumeClaim my-pvc を削除するには、次のコマンドを実行します。

      env HTTPS_PROXY=http://localhost:8118 \
      kubectl delete persistentvolumeclaim my-pvc
      
  3. anthos-aws ディレクトリから anthos-gke を使用して、コンテキストを管理サービスに切り替えます。

    cd anthos-aws
    anthos-gke aws management get-credentials

  4. kubectl ですべての AWSNodePool を削除します。

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl delete AWSNodePool --all
    
  5. kubectl ですべての AWSCluster を削除します。

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl delete AWSCluster --all
    

管理サービスの削除

管理サービスを削除するには anthos-gke を使用します。

  1. インストール中に作成したフォルダに移動します。

  2. anthos-gke を使用して、管理サービスのリソースを削除します。

    env HTTP_PROXY=http://localhost:8118 \
      anthos-gke aws management delete
    

AWS S3 バケットの削除

管理サービスを作成すると、anthos-gke はクラスタ作成用のバイナリとともに AWS 上に S3 バケットを作成します。バケットは、新しいユーザー クラスタを作成するときに再利用されます。AWS で GKE を使用しなくなった場合は、管理サービスを削除した後でバケットを削除できます。

AWS S3 バケットの GKE を削除するには、次の手順を実行します。

  1. バケットの名前を確認するには、terraform-workspace/terraform.tfvars.json 内の gcs_download_bucket の値を grep で探します。

    grep agent_s3_bucket terraform.tfvars.json
    
  2. この S3 バケットとその内容を aws コマンドで削除します。bucket-name は、前のコマンドで取得したバケット名に置き換えます。

    aws s3 rb s3://bucket-name --force