GKE on AWS 제거

이 주제에서는 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의 공개 서브넷에 배스천 호스트가 포함됩니다.

관리 서비스에 연결하려면 다음 단계를 수행하세요.

  1. GKE on AWS 구성이 있는 디렉터리로 변경합니다. 이 디렉터리는 관리 서비스를 설치할 때 생성됩니다.

    cd anthos-aws

  2. bastion-tunnel.sh 스크립트를 실행하여 터널을 엽니다. 터널이 localhost:8118로 연결됩니다.

    배스천 호스트에 대한 터널을 열려면 다음 명령어를 실행합니다.

    ./bastion-tunnel.sh -N
    

    SSH 터널의 메시지가 이 창에 표시됩니다. 연결을 종료할 준비가 되면 Control+C를 사용하거나 창을 닫아 프로세스를 중지합니다.

  3. 새 터미널을 열고 anthos-aws 디렉터리로 변경합니다.

    cd anthos-aws
  4. kubectl을 사용하여 클러스터에 연결할 수 있는지 확인합니다.

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

    출력에는 관리 서비스 API 서버의 URL이 포함됩니다.

사용자 클러스터 삭제

kubectl을 사용하여 사용자 클러스터를 삭제합니다. GKE on AWS는 모든 노드를 정상적으로 종료합니다. 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. 이전에 만든 부하 분산기 인그레스 또는 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를 사용하여 생성된 남은 서비스 또는 PersistentVolumeClaims를 삭제합니다. 예를 들어 LoadBalancer my-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
      
  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 버킷을 만듭니다. 버킷은 새 사용자 클러스터를 만들 때 다시 사용됩니다. GKE on AWS를 더 이상 사용하지 않는 경우에는 관리 서비스를 삭제한 후 버킷을 삭제할 수 있습니다.

GKE on AWS S3 버킷을 삭제하려면 다음 단계를 수행합니다.

  1. 버킷 이름을 찾으려면 terraform-workspace/terraform.tfvars.json에서 grep으로 gcs_download_bucket 값을 찾습니다.

    grep agent_s3_bucket terraform.tfvars.json
    
  2. aws 명령어로 이 s3 버킷과 콘텐츠를 삭제하고 bucket-name은 이전 명령어의 버킷 이름으로 바꿉니다.

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