내용으로 건너뛰기

Amazon EKS 클러스터의 관리형 노드 그룹 오류를 해결하려면 어떻게 해야 하나요?

3분 분량
0

Amazon Elastic Kubernetes Service(Amazon EKS) 클러스터의 관리형 노드 그룹에 문제가 있습니다.

간략한 설명

Amazon EKS 클러스터에서 관리형 노드 그룹 오류의 일반적인 원인은 다음과 같습니다.

  • 잘못된 DHCP 옵션: API 서버에 노드를 등록할 때 오류가 발생합니다.
  • 누락된 AWS Key Management Service(AWS KMS) 키 권한: AWS KMS 키로 암호화된 Amazon Elastic Block Store(Amazon EBS) 볼륨이 있는 Auto Scaling 그룹에서 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 시작하면 오류가 발생합니다.
  • 잘못된 시작 템플릿: EC2 시작 템플릿이 Amazon EKS에서 생성한 버전과 일치하지 않기 때문에 관리형 노드 그룹이 성능 저하 상태입니다.

해결 방법

DHCP 옵션 확인

사용자 지정 DNS에서 잘못된 DHCP 옵션을 사용하면 다음과 같은 오류가 발생할 수 있습니다.

"Node "ip-x-x-x-x.eu-region.compute.internal" is invalid: metadata.labels: Invalid value"

호스트 이름이 63자를 넘지 않는지 확인합니다. DHCP 옵션을 검토하려면 Amazon VPC의 DHCP 옵션 세트를 참조하세요. AWS 리전과 일치하도록 호스트 이름을 지정합니다. us-east-1에 있는 AmazonProvidedDNS 서버의 경우 ec2.internal를 지정합니다. 다른 리전에 있는 AmazonProvidedDNS 서버의 경우 region.compute.internal를 지정합니다.

us-east-1에서 설정된 DHCP 옵션의 예:

domain-name: ec2.internal
domain-name-servers: AmazonProvidedDNS

다른 리전에 설정된 DHCP 옵션의 예:

domain-name: region.compute.internal
domain-name-servers: AmazonProvidedDNS

사용자 지정 DNS에서 설정된 DHCP 옵션의 예:

domain-name: 사용자 지정 DNS 이름
domain-name-servers: 도메인 네임 서버

참고: 리전을 해당 리전으로, 사용자 지정 DNS 이름을 DNS 이름으로, 도메인 이름 서버를 도메인 이름 서버로 바꿉니다.

자세한 내용을 보려면 DHCP 옵션 세트 개념을 참조하세요. DHCP 옵션 세트가 여러 운영 체제의 인스턴스가 있는 VPC와 연결된 경우 도메인 이름을 하나만 지정하는 것이 좋습니다.

EBS 볼륨 암호화를 위한 키 정책 구성

Auto Scaling 그룹 서비스 역할에 권한이 없는 경우 다음 오류가 표시될 수 있습니다.

"AccessDeniedException: User: arn:aws:sts::xxxxxxxxxxxx:assumed-role/AWSServiceRoleForAutoScaling/AutoScaling is not authorized to perform: kms:GenerateDataKeyWithoutPlaintext on resource: ARN of KMS key"

관리형 노드가 AWS KMS 키로 암호화된 Amazon EBS 볼륨을 사용하는 경우 Auto Scaling 그룹 서비스 역할은 해당 볼륨에 액세스할 수 없습니다.

Auto Scaling 그룹 서비스 역할에는 암호화된 EBS 볼륨을 사용하려면 다음과 같은 권한이 있어야 합니다.

  • kms:Encrypt
  • kms:Decrypt
  • kms:ReEncrypt*
  • kms:GenerateDataKey*
  • kms:DescribeKey
  • kms:CreateGrant

올바른 KMS 키 정책을 구성하려면 암호화된 볼륨에 사용할 필수 AWS KMS 키 정책을 참조하세요. 암호화된 EBS 볼륨에서 더 많은 IAM 역할을 사용할 수 있도록 키 정책을 수정할 수 있습니다. 자세한 내용을 보려면 키 사용자가 KMS 키를 사용할 수 있도록 허용을 참조하세요. KMS 키 액세스 관리에 대한 자세한 내용을 보려면 AWS 키 관리 서비스를 참조하세요.

시작 템플릿 버전 업데이트

참고: 관리 노드 그룹에서 EC2 시작 템플릿을 업데이트하기 전에 새 버전을 생성하세요. 자세한 내용을 보려면 정의한 파라미터를 사용하여 새 시작 템플릿 생성을 참조하세요.

Auto Scaling 그룹에서 직접 시작 템플릿을 수동으로 업데이트하면 다음과 같은 오류가 발생할 수 있습니다.

"Ec2LaunchTemplateVersionMismatch"

관리형 노드 그룹에서 EC2 시작 템플릿을 업데이트하려면 다음 단계를 완료하세요.

  1. EKS 콘솔을 엽니다.
  2. 업데이트할 노드 그룹이 포함된 클러스터를 선택합니다.
  3. 구성 탭을 선택하고 계산 탭을 선택합니다.
  4. 노드 그룹 페이지의 시작 템플릿에서 버전 변경을 선택합니다.
  5. 노드 그룹에 적용할 버전을 선택합니다. 업데이트 전략이 롤링 업데이트로 설정되어 있는지 확인합니다.
  6. 업데이트를 선택합니다.

참고: 새 버전의 EC2 시작 템플릿으로 노드 그룹을 업데이트하는 것이 가장 좋습니다.

사용자 지정 시작 템플릿을 사용하지 않았는데 Ec2LaunchTemplateVersionMismatch 오류가 발생하는 경우 시작 템플릿 버전을 확인하세요. 워커 노드와 EKS 노드 그룹은 동일한 시작 템플릿 버전을 사용하지 않을 수 있습니다. 이 문제를 해결하려면 Auto Scaling 콘솔로 이동하여 EKS에서 생성한 버전으로 되돌리세요. 자세한 내용을 보려면 관리형 노드 그룹 오류를 참조하세요. 관리형 노드 그룹의 실패한 노드에 대한 기타 해결 방법을 보려면 워커 노드를 Amazon EKS 클러스터에 포함시키려면 어떻게 해야 합니까?를 참조하세요.

AWS 공식업데이트됨 2년 전