클러스터 삭제 - Amazon EKS

클러스터 삭제

Amazon EKS 클러스터 사용을 완료한 경우 불필요한 비용이 발생하지 않도록 클러스터와 연결된 리소스를 삭제해야 합니다.

연결된 클러스터를 제거하려면 Amazon EKS 콘솔에서 Kubernetes 클러스터 등록 취소 섹션을 참조하세요.

중요
  • 클러스터의 활성 서비스가 로드 밸런서와 연결된 경우 로드 밸런서가 적절하게 삭제되도록 클러스터 삭제 전에 해당 서비스를 삭제해야 합니다. 그렇지 않으면 VPC에 분리된 리소스가 발생하여 VPC를 삭제할 수 없게 됩니다.

  • 클러스터 생성자가 제거되어 오류가 발생하는 경우 문제를 해결하려면 이 문서를 참조하세요.

  • Amazon Managed Service for Prometheus 리소스는 클러스터 수명 주기를 벗어나며 클러스터에 독립적으로 유지 관리되어야 합니다. 클러스터를 삭제할 때 해당 스크레이퍼도 모두 삭제하여 관련 비용을 줄여야 합니다. 자세한 내용은 Amazon Managed Service for Prometheus 사용자 가이드의 Scraper 찾기 및 삭제를 참조하세요.

eksctl, AWS Management Console 또는 AWS CLI를 사용하여 클러스터를 삭제할 수 있습니다.

클러스터 삭제(eksctl)

이 절차에는 eksctl 버전 0.194.0 이상이 필요합니다. 버전은 다음 명령을 통해 확인할 수 있습니다.

eksctl version

eksctl 설치 또는 업데이트에 대한 지침은 eksctl 설명서의 Installation을 참조하세요.

  1. 클러스터에서 실행 중인 모든 서비스를 나열합니다.

    kubectl get svc --all-namespaces
    1. EXTERNAL-IP 값과 연결된 모든 서비스를 삭제합니다. 이러한 서비스는 Elastic Load Balancing 로드 밸런서에 의해 설정되고 Kubernetes에서 이를 삭제하여 로드 밸런서 및 연결된 리소스가 적절하게 릴리스되어야 합니다.

      kubectl delete svc service-name
  2. 다음 명령으로 클러스터 및 연결된 노드를 삭제하되, prod를 클러스터 이름으로 변경합니다.

    eksctl delete cluster --name prod

    출력:

    [ℹ] using region region-code [ℹ] deleting EKS cluster "prod" [ℹ] will delete stack "eksctl-prod-nodegroup-standard-nodes" [ℹ] waiting for stack "eksctl-prod-nodegroup-standard-nodes" to get deleted [ℹ] will delete stack "eksctl-prod-cluster" [✔] the following EKS cluster resource(s) for "prod" will be deleted: cluster. If in doubt, check CloudFormation console

클러스터 삭제 (AWS 콘솔)

  1. 클러스터에서 실행 중인 모든 서비스를 나열합니다.

    kubectl get svc --all-namespaces
  2. EXTERNAL-IP 값과 연결된 모든 서비스를 삭제합니다. 이러한 서비스는 Elastic Load Balancing 로드 밸런서에 의해 설정되고 Kubernetes에서 이를 삭제하여 로드 밸런서 및 연결된 리소스가 적절하게 릴리스되어야 합니다.

    kubectl delete svc service-name
  3. 모든 노드 그룹 및 Fargate 프로필을 삭제합니다.

    1. Amazon EKS 콘솔을 엽니다.

    2. 왼쪽 탐색 창에서 Amazon EKS 클러스터(Clusters)를 선택한 다음 탭으로 구분된 클러스터 목록에서 삭제할 클러스터의 이름을 선택합니다.

    3. 컴퓨팅(Compute)탭을 선택하고 삭제할 노드 그룹을 선택합니다. 삭제(Delete)를 선택하고 노드 그룹의 이름을 입력한 다음 삭제(Delete)를 선택합니다. 클러스터의 모든 노드 그룹을 삭제합니다.

      참고

      관리형 노드 그룹만 나열됩니다.

    4. 삭제할 Fargate 프로필(Fargate Profile)에 이어 삭제(Delete)를 선택하고 프로필의 이름을 입력한 다음 삭제(Delete)를 선택합니다. 클러스터의 모든 Fargate 프로필을 삭제합니다.

  4. 모든 자체 관리형 노드 AWS CloudFormation 스택을 삭제합니다.

    1. AWSCloudFormation 콘솔을 엽니다.

    2. 삭제할 노드 스택을 선택하고 삭제(Delete)를 선택합니다.

    3. 스택 삭제(Delete stack) 확인 대화 상자에서 스택 삭제(Delete stack)를 선택합니다. 클러스터의 모든 자체 관리형 노드 스택을 삭제합니다.

  5. 클러스터를 삭제합니다.

    1. Amazon EKS 콘솔을 엽니다.

    2. 삭제할 클러스터를 선택하고 삭제(Delete)를 선택합니다.

    3. 클러스터 삭제 확인 화면에서 삭제(Delete)를 선택합니다.

  6. (선택 사항) VPC AWS CloudFormation 스택을 삭제합니다.

    1. AWSCloudFormation 콘솔을 엽니다.

    2. 삭제할 VPC 스택을 선택하고 삭제(Delete)를 선택합니다.

    3. 스택 삭제(Delete stack) 확인 대화 상자에서 스택 삭제(Delete stack)를 선택합니다.

클러스터를 삭제(AWS CLI)

  1. 클러스터에서 실행 중인 모든 서비스를 나열합니다.

    kubectl get svc --all-namespaces
  2. EXTERNAL-IP 값과 연결된 모든 서비스를 삭제합니다. 이러한 서비스는 Elastic Load Balancing 로드 밸런서에 의해 설정되고 Kubernetes에서 이를 삭제하여 로드 밸런서 및 연결된 리소스가 적절하게 릴리스되어야 합니다.

    kubectl delete svc service-name
  3. 모든 노드 그룹 및 Fargate 프로필을 삭제합니다.

    1. 다음 명령을 사용하여 클러스터의 노드 그룹을 나열합니다.

      aws eks list-nodegroups --cluster-name my-cluster
      참고

      관리형 노드 그룹만 나열됩니다.

    2. 다음 명령을 사용하여 각 노드 그룹을 삭제합니다. 클러스터의 모든 노드 그룹을 삭제합니다.

      aws eks delete-nodegroup --nodegroup-name my-nodegroup --cluster-name my-cluster
    3. 다음 명령을 사용하여 클러스터에 Fargate 프로필을 나열합니다.

      aws eks list-fargate-profiles --cluster-name my-cluster
    4. 다음 명령을 사용하여 각 Fargate 프로필을 삭제합니다. 클러스터의 모든 Fargate 프로필을 삭제합니다.

      aws eks delete-fargate-profile --fargate-profile-name my-fargate-profile --cluster-name my-cluster
  4. 모든 자체 관리형 노드 AWS CloudFormation 스택을 삭제합니다.

    1. 다음 명령으로 사용 가능한 AWS CloudFormation 스택을 나열합니다. 결과 출력에서 노드 템플릿의 이름을 찾습니다.

      aws cloudformation list-stacks --query "StackSummaries[].StackName"
    2. 다음 명령으로 각 노드 스택을 삭제하되, node-stack을 노드 스택 이름으로 변경합니다. 클러스터의 모든 자체 관리형 노드 스택을 삭제합니다.

      aws cloudformation delete-stack --stack-name node-stack
  5. 다음 명령으로 클러스터를 삭제하되, my-cluster를 사용할 클러스터 이름으로 변경합니다.

    aws eks delete-cluster --name my-cluster
  6. (선택 사항) VPC AWS CloudFormation 스택을 삭제합니다.

    1. 다음 명령으로 사용 가능한 AWS CloudFormation 스택을 나열합니다. 결과 출력에서 VPC 템플릿의 이름을 찾습니다.

      aws cloudformation list-stacks --query "StackSummaries[].StackName"
    2. 다음 명령으로 VPC 스택을 삭제하되, my-vpc-stack을 사용할 VPC 스택의 이름으로 변경합니다.

      aws cloudformation delete-stack --stack-name my-vpc-stack