このトピックでは、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 にパブリック サブネットの踏み台インスタンスが含まれます。
管理サービスに接続するには、次の手順を実施します。
- GKE on AWS 構成のディレクトリに移動します。このディレクトリは、管理サービスをインストールしたときに作成したものです。 - cd anthos-aws 
- トンネルを開くには、 - bastion-tunnel.shスクリプトを実行します。トンネルは- localhost:8118に転送されます。- 踏み台インスタンスへのトンネルを開くには、次のコマンドを実行します。 - ./bastion-tunnel.sh -N- SSH トンネルからのメッセージがこのウィンドウに表示されます。接続を閉じる準備ができたら、Ctrl+C を使用するか、ウィンドウを閉じて処理を停止します。 
- 新しいターミナルを開き、 - anthos-awsディレクトリに移動します。- cd anthos-aws 
- kubectlを使用してクラスタに接続できることを確認します。- env HTTPS_PROXY=http://localhost:8118 \ kubectl cluster-info- 出力には、Management Service API サーバーの URL が含まれます。 
ユーザー クラスタの削除
ユーザー クラスタを削除するには、kubectl を使用します。AWS の GKE はすべてのノードを正常にシャットダウンします。Pod は SIGTERM を受け取り、猶予期間の後に SIGKILL を受け取ります。Pod が停止すると、管理サービスは AWS リソースの削除を開始します。
ユーザー クラスタを削除するには、次の手順を行います。
- anthos-awsディレクトリから- anthos-gkeを使用して、コンテキストをユーザー クラスタに切り替えます。- cd anthos-aws env HTTPS_PROXY=http://localhost:8118 \ anthos-gke aws clusters get-credentials CLUSTER_NAME 
- 作成したロードバランサ Ingress または PersistentVolumeClaim リソースを削除します。 - 次の - kubectlコマンドを使用して、ユーザー クラスタに残りのロードバランサ サービスがあるかどうかを確認します。- env HTTPS_PROXY=http://localhost:8118 \ kubectl get services
- 次の - kubectlコマンドを使用して、ユーザー クラスタに残りの PersistentVolumeClaim があるかどうかを確認します。- env HTTPS_PROXY=http://localhost:8118 \ kubectl get persistentvolumeclaim
- 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
 
- anthos-awsディレクトリから- anthos-gkeを使用して、コンテキストを管理サービスに切り替えます。- cd anthos-aws anthos-gke aws management get-credentials 
- kubectlですべての AWSNodePool を削除します。- env HTTPS_PROXY=http://localhost:8118 \ kubectl delete AWSNodePool --all
- kubectlですべての AWSCluster を削除します。- env HTTPS_PROXY=http://localhost:8118 \ kubectl delete AWSCluster --all
管理サービスの削除
管理サービスを削除するには anthos-gke を使用します。
- インストール中に作成したフォルダに移動します。 
- anthos-gkeを使用して、管理サービスのリソースを削除します。- env HTTP_PROXY=http://localhost:8118 \ anthos-gke aws management delete
AWS S3 バケットの削除
管理サービスを作成すると、anthos-gke はクラスタ作成用のバイナリとともに AWS 上に S3 バケットを作成します。バケットは、新しいユーザー クラスタを作成するときに再利用されます。AWS で GKE を使用しなくなった場合は、管理サービスを削除した後でバケットを削除できます。
AWS S3 バケットの GKE を削除するには、次の手順を実行します。
- バケットの名前を確認するには、 - terraform-workspace/terraform.tfvars.json内の- gcs_download_bucketの値を- grepで探します。- grep agent_s3_bucket terraform.tfvars.json
- この S3 バケットとその内容を - awsコマンドで削除します。bucket-name は、前のコマンドで取得したバケット名に置き換えます。- aws s3 rb s3://bucket-name --force