このトピックでは、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
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