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 스택 삭제 섹션의 단계를 완료하십시오.
- 클러스터를 삭제했지만 노드가 여전히 활성 상태입니다. 클러스터를 삭제해도 자체 관리형 노드는 자동으로 삭제되지 않습니다. 해당 노드를 수동으로 삭제해야 합니다. 자체 관리형 노드 삭제 섹션의 단계를 완료하십시오.
- 클러스터가 DELETING 상태로 멈췄습니다. 클러스터 삭제를 방해하는 누락된 AWS Identity and Access Management(IAM) 정책 또는 역할이 없는지 확인하십시오. IAM 역할이 없는 경우 Amazon EKS용 IAM 서비스 역할 재생성 섹션의 단계를 완료하십시오.
- Amazon EKS DeleteCluster API 호출이 실패하고 "Cannot delete because cluster XXXXXXX currently has an update in progress" 오류 메시지가 표시됩니다. 하지만 클러스터가 활성 상태이고 업데이트가 진행되고 있지 않은 것을 알 수 있습니다. 이 경우 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) 인스턴스를 수동으로 생성한 경우 인스턴스를 종료하십시오. Auto Scaling 그룹에서 노드를 생성한 경우 노드를 삭제하려면 Auto Scaling 그룹을 삭제하십시오. 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 마이너 버전의 최신 플랫폼 버전으로 전환되면 클러스터 삭제를 다시 시도할 수 있습니다.