이 주제에서는 GKE on AWS를 제거하는 방법을 설명합니다.
시작하기 전에
이 단계를 수행하려면 GKE on AWS 관리 서비스로 인증을 수행합니다.
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 터널의 메시지가 이 창에 표시됩니다. 연결을 종료할 준비가 되면 Control+C를 사용하거나 창을 닫아 프로세스를 중지합니다.
새 터미널을 열고
anthos-aws
디렉터리로 변경합니다.cd anthos-aws
kubectl
을 사용하여 클러스터에 연결할 수 있는지 확인합니다.env HTTPS_PROXY=http://localhost:8118 \ kubectl cluster-info
출력에는 관리 서비스 API 서버의 URL이 포함됩니다.
사용자 클러스터 삭제
kubectl
을 사용하여 사용자 클러스터를 삭제합니다. GKE on AWS는 모든 노드를 정상적으로 종료합니다. 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을 사용자 클러스터 이름으로 바꿉니다.이전에 만든 부하 분산기 인그레스 또는 PersistentVolumeClaim 리소스를 삭제합니다.
다음
kubectl
명령어를 사용하여 사용자 클러스터에 남은 부하 분산기 서비스가 있는지 확인합니다.env HTTPS_PROXY=http://localhost:8118 \ kubectl get services
다음
kubectl
명령어를 사용하여 사용자 클러스터에 남아 있는 PersistentVolumeClaim이 남아 있는지 확인합니다.env HTTPS_PROXY=http://localhost:8118 \ kubectl get persistentvolumeclaim
kubectl delete
를 사용하여 생성된 남은 서비스 또는 PersistentVolumeClaims를 삭제합니다. 예를 들어 LoadBalancermy-lb-service
를 삭제하려면 다음 명령어를 실행합니다.env HTTPS_PROXY=http://localhost:8118 \ kubectl delete service my-lb-service
예를 들어 PersistentVolumeClaims
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 버킷을 만듭니다. 버킷은 새 사용자 클러스터를 만들 때 다시 사용됩니다. GKE on AWS를 더 이상 사용하지 않는 경우에는 관리 서비스를 삭제한 후 버킷을 삭제할 수 있습니다.
GKE on AWS S3 버킷을 삭제하려면 다음 단계를 수행합니다.
버킷 이름을 찾으려면
terraform-workspace/terraform.tfvars.json
에서grep
으로gcs_download_bucket
값을 찾습니다.grep agent_s3_bucket terraform.tfvars.json
aws
명령어로 이 s3 버킷과 콘텐츠를 삭제하고 bucket-name은 이전 명령어의 버킷 이름으로 바꿉니다.aws s3 rb s3://bucket-name --force