Amazon EKS에서 클러스터 생성 오류를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 2월 12일

AWS CloudFormation 또는 eksctl을 사용하여 Amazon Elastic Kubernetes Service(Amazon EKS) 클러스터를 프로비저닝할 때 서비스 오류가 발생합니다.

간략한 설명

다음 문제 해결 옵션을 고려하십시오.

  • 대상 가용 영역에 클러스터를 지원할 용량이 충분하지 않다는 오류 메시지가 표시되면 다른 가용 영역에서 클러스터 다시 생성 섹션의 단계를 완료합니다.
  • 리소스 생성이 실패했다는 오류 메시지가 표시되면 클러스터를 생성하는 데 올바른 IAM 권한이 있는지 확인 섹션 또는 Amazon VPC 리소스 모니터링 섹션의 단계를 완료하십시오.
  • 작업자 노드를 기다리는 생성 시간이 초과되었다는 오류 메시지가 표시되면 작업자 노드가 제어 플레인 API 엔드포인트에 도달할 수 있는지 확인 섹션의 단계를 완료합니다.

해결 방법

다른 가용 영역에서 클러스터 다시 생성

용량이 제한된 가용 영역에서 제어 플레인 인스턴스를 시작하면 다음과 비슷한 오류가 발생할 수 있습니다.

Cannot create cluster 'sample-cluster' because us-east-1d, the targeted availability zone, does not currently have sufficient capacity to support the cluster. Retry and choose from these availability zones: us-east-1a, us-east-1b, us-east-1c

이 오류를 해결하려면 오류 메시지에서 권장 가용 영역을 사용하여 클러스터를 다시 생성합니다.

AWS CloudFormation을 사용하여 클러스터를 프로비저닝하는 경우 가용 영역과 일치하는 서브넷에 대해 [Subnets(서브넷)] 파라미터 값을 전달합니다.

또는

eksctl을 사용하는 경우 -zones 플래그를 사용하여 다른 가용 영역에 대한 값을 전달합니다. 예를 들어 앞의 오류가 표시되는 경우 다음 명령을 실행합니다.

$ eksctl create cluster 'sample-cluster' --zones us-east-1a,us-east-1b,us-east-1c

참고: sample-cluster를 클러스터 이름으로 바꿉니다. us-east-1a, us-east-1bus-east-1c를 가용 영역으로 바꿉니다.

클러스터를 생성할 수 있는 올바른 IAM 권한이 있는지 확인

Amazon EKS 서비스 IAM 역할에 대한 올바른 정책을 포함하여 클러스터를 생성할 때 올바른 AWS Identity and Access Management(IAM) 권한이 있는지 확인합니다.

eksctl을 사용하여 IAM 역할 및 보안 그룹과 같은 클러스터의 필수 리소스를 생성할 수 있습니다. 필요한 최소 권한은 시작하는 eksctl 구성에 따라 다릅니다. 자세한 내용은 eksctl GitHub 커뮤니티의 문제 해결 솔루션을 검토하십시오.

클러스터에 IAM 권한 문제가 있는 경우 eksctl에서 다음과 유사한 오류가 표시될 수 있습니다.

API: iam:CreateRole User: arn:aws:iam::your-account-id:user/your-user-name is not authorized to perform: iam:CreateRole on resource: arn:aws:iam::your-account-id:role/eksctl-newtest22-cluster-ServiceRole-10NXBYLSN4ULP

팁: 읽기 쉬운 오류 메시지를 보려면 AWS CloudFormation 콘솔에서 오류를 검토하십시오.

오류를 해결하려면 Amazon EKS에 대한 IAM 지침을 검토하거나, 사용자 또는 역할과 연결된 IAM 정책 문제를 해결하십시오 .

Amazon VPC 리소스 모니터링

구성 파일에 자체 사용자 지정 Amazon VPC와 서브넷을 지정하지 않는 한 기본적으로 eksctl은 클러스터를 생성할 때 새 Amazon Virtual Private Cloud(Amazon VPC)를 생성합니다.

클러스터에 Amazon VPC 제한에 문제가 있는 경우 다음 오류 메시지가 표시될 수 있습니다.

The maximum number of VPCs has been reached. (Service: AmazonEC2; Status Code: 400; Error Code: VpcLimitExceeded; Request ID: a12b34cd-567e-890-123f-ghi4j56k7lmn)

이 오류를 해결하려면 리소스를 모니터링하십시오(예: AWS 리전의 Amazon VPC 개수 또는 클러스터를 생성한 리전당 인터넷 게이트웨이). 자세한 내용은 Amazon VPC 할당량을 참조하십시오.

해당 리전의 Amazon VPC 리소스 수에 대한 리소스 제한과 관련하여 문제가 있는 경우 다음 옵션 중 하나를 고려하십시오.

(옵션 1)기존 Amazon VPC를 사용하여 리소스 제약 극복

VPC와 클러스터의 작업자 노드를 프로비저닝할 서브넷을 지정하는 구성 파일을 생성하려면 다음 명령을 실행합니다.

$ eksctl create cluster sample-cluster -f cluster.yaml

또는

(옵션 2)리소스 제약 극복을 위해 서비스 할당량 증가 요청

eksctl에서 프로비저닝한 클러스터의 AWS CloudFormation 스택 이벤트에서 병목 현상으로 작용하는 리소스에 대한 서비스 할당량 증가를 요청합니다 .

작업자 노드가 제어 플레인 API 엔드포인트에 도달할 수 있는지 확인

eksctl이 클러스터를 배포할 때 클러스터를 조인하고 Ready(준비) 상태에 도달하기 위해 시작된 작업자 노드를 기다립니다. 작업자 노드가 제어 플레인에 도달할 수 없거나 잘못된 IAM 역할이 있는 경우 다음 오류가 발생할 수 있습니다.

timed out (after 25m0s) waiting for at least 4 nodes to join the cluster and become ready in "eksfbots-ng1"

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?