Amazon EKS 클러스터를 삭제할 수 없는 이유가 무엇인가요?

3분 분량
0

Amazon Elastic Kubernetes Service(Amazon EKS) 클러스터를 삭제할 수 없습니다. 이 문제를 해결하려면 어떻게 해야 하나요?

간략한 설명

Amazon EKS 클러스터를 삭제하려면 먼저 클러스터와 연결된 모든 관리형 노드 그룹을 삭제해야 합니다. 자세한 내용은 Amazon EKS 클러스터 삭제 단원를 참조하세요.

참고: 클러스터를 생성할 때 사용한 것과 동일한 도구를 사용하여 클러스터를 삭제하는 것이 가장 좋습니다.

중요: GitHub 웹 사이트에서 AWS Load Balancer Controller를 사용하여 로드 밸런서를 생성하면 Application Load Balancer 또는 Network Load Balancer가 자동으로 생성됩니다. 로드 밸런서를 관리하는 Kubernetes 수신 또는 서비스를 삭제하기 전에 클러스터를 삭제하는 경우, 로드 밸런서를 수동으로 삭제해야 합니다. Application Load Balancer 삭제, Network Load Balancer 삭제로드 밸런서(클래식) 삭제를 참조하세요.

그래도 클러스터 구성 요소를 삭제할 수 없다면 시나리오에 따라 다음 옵션을 고려합니다.

  • 'The following resource(s) failed to delete' 또는 'resource XXXXXXX has a dependent object' 오류 메시지가 나타납니다. 클러스터 구성 요소를 생성한 AWS CloudFormation 스택 삭제 섹션의 단계를 완료하세요.
  • 클러스터를 삭제했지만 노드가 여전히 활성 상태입니다. 클러스터를 삭제해도 자체 관리형 노드가 자동으로 삭제되지 않습니다. 이 경우 노드를 수동으로 삭제해야 합니다. 자체 관리형 노드 삭제(Delete self-managed nodes) 섹션의 단계를 완료하세요.
  • 클러스터가 삭제 중 상태에서 멈췄습니다. 클러스터가 삭제되는 것을 방지하는 AWS Identity and Access Management(IAM) 정책 또는 역할이 누락되지 않았는지 확인하세요. IAM 역할이 없는 경우 Amazon EKS에 대한 IAM 서비스 역할 다시 생성(Recreate the IAM service role for Amazon EKS) 섹션의 단계를 완료합니다.
  • Amazon EKS DeleteCluster API 호출은 “클러스터 XXXXXXX에 현재 업데이트가 진행 중이므로 삭제할 수 없습니다”라는 오류 메시지와 함께 실패합니다. 하지만 클러스터가 활성 상태이고 진행 중인 업데이트가 없는 것을 볼 수 있습니다. 이 경우 Amazon EKS 자동 플랫폼 버전 업그레이드 완료 섹션을 참조하세요.

참고: 클러스터를 삭제하는 데 시간이 걸리는 것은 정상입니다. DELETING 상태인 클러스터에 대해서는 요금이 부과되지 않습니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.

클러스터 구성 요소를 생성한 AWS CloudFormation 스택 삭제

1.    AWS CloudFormation 콘솔에서 스택 삭제를 할 수 있습니다. 또는 AWS CLI delete-stack 명령을 사용할 수 있습니다.

종속성으로 인해 스택을 삭제할 수 없는 경우 우선 종속성이 있는 리소스를 수동으로 삭제하거나 종속성을 제거합니다. 그런 다음 스택을 다시 삭제해 봅니다.

삭제하지 못한 리소스를 유지하려면 스택을 삭제할 때 리소스를 건너뜁니다. 이 옵션은 DELETE_FAILED 상태인 리소스 또는 스택에서만 사용할 수 있습니다. 건너뛴 리소스는 계정에서 활성 상태로 유지되지만 CloudFormation 스택이 삭제됩니다. 그런 다음 AWS Management Console을 통해 리소스를 삭제할 수 있습니다.

2.    스택이 삭제된 후 클러스터를 다시 삭제해 봅니다.

스택 삭제 속도가 느리거나 삭제에 실패한 경우 AWS CloudTrail DeleteCluster API 호출을 검토합니다.

자체 관리형 노드 삭제

Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 수동으로 생성한 경우 인스턴스를 종료합니다. 오토 스케일링 그룹에서 노드를 생성한 경우 오토 스케일링 그룹을 삭제하여 노드를 삭제합니다. CloudFormation을 사용하여 노드를 생성한 경우 스택을 삭제하여 노드를 삭제합니다.

Amazon EKS에 대한 IAM 서비스 역할 다시 생성

Amazon EKS가 다른 AWS 서비스를 호출할 수 있도록 허용하는 IAM 서비스 역할이 있어야 합니다. 클러스터를 생성한 후 역할을 삭제하거나 수정하면 클러스터가 일부 리소스를 삭제하지 못합니다. 예를 들어, 클러스터가 컨트롤 플레인 인스턴스와의 프라이빗 통신에 사용되는 탄력적 네트워크 인터페이스를 삭제하지 않을 수 있습니다.

1.    다시 IAM 역할을 생성합니다.

중요: 클러스터를 관리하기 위한 서비스로 Amazon EKS를 선택해야 합니다.

2.    AmazonEKSClusterPolicy 관리형 정책을 IAM 역할에 연결합니다.

Amazon EKS 자동 플랫폼 버전 업그레이드 완료

Amazon EKS는 모든 기존 클러스터를 해당 Kubernetes 마이너 버전에 맞는 최신 Amazon EKS 플랫폼 버전으로 자동 업그레이드합니다. 이러한 업데이트는 사용자가 시작한 것이 아니므로 콘솔에서 업데이트로 표시되지 않습니다. 기존 Amazon EKS 플랫폼 버전의 자동 업그레이드는 점진적으로 롤아웃되며 완료하는 데 다소 시간이 걸릴 수 있습니다. 클러스터가 해당 Kubernetes 마이너 버전의 최신 플랫폼 버전으로 전환되면 클러스터 삭제를 다시 시도할 수 있습니다.


AWS 공식
AWS 공식업데이트됨 일 년 전