Amazon EKS 클러스터에서 관리형 노드 그룹 오류를 해결하려면 어떻게 해야 합니까?

3분 분량
0

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

간략한 설명

API 서버에 노드를 등록하면 오류가 발생합니다.

사용자 지정 DNS에서 잘못된 DHCP 옵션을 사용하면 다음 오류가 발생합니다.

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

문제를 해결하려면 해결 방법DHCP 옵션 확인 섹션에 있는 단계를 완료합니다.

KMS 키로 암호화된 Amazon Elastic Block Store(Amazon EBS) 볼륨이 있는 Auto Scaling 그룹에서 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 시작하면 오류가 발생합니다.

예제 오류:

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

관리형 노드에서 KMS 키로 암호화된 Amazon EBS 볼륨을 사용하는 경우 Auto Scaling 그룹 서비스 역할이 해당 키에 액세스할 수 없습니다. 키 정책을 설정하려면 해결 방법EBS 볼륨 암호화에 대한 키 정책 구성 섹션을 참조하세요.

EC2 시작 템플릿 버전이 Amazon EKS에서 생성한 버전과 일치하지 않기 때문에 관리형 노드 그룹은 성능이 저하됨 상태입니다.

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

Ec2LaunchTemplateVersionMismatch

문제를 해결하려면 해결 방법시작 템플릿 버전 업데이트 섹션에 있는 단계를 완료합니다.

관리형 노드 그룹에서 실패한 노드에 대한 다른 해결 방법은 작업자 노드를 Amazon EKS 클러스터에 참여하도록 하려면 어떻게 해야 합니까?를 참조하세요.

해결 방법

DHCP 옵션 확인

호스트 이름이 63자를 넘지 않는지 확인합니다. DHCP 옵션을 검토하려면 DHCP 옵션 세트로 작업을 참조하세요.

호스트 이름을 AWS 리전과 일치하도록 지정합니다. us-east-1에 있는 AmazonProvidedDNS 서버의 경우 ec2.internal을 지정합니다. 다른 AWS 리전의 AmazonProvidedDNS 서버의 경우 region.compute.internal을 지정합니다.

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

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

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

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

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

domain-name:custom DNS name
domain-name-servers: domain name server

참고: **리전 이름(region name)**을 본인의 리전으로 바꾸고, **사용자 지정 DNS 이름(custom DNS name)**을 본인의 DNS 이름으로 바꾸고, **도메인 이름 서버(domain name server)**를 본인의 도메인 이름 서버로 바꿉니다.

자세한 내용은 DHCP 옵션 세트 개요domain-name 섹션을 참조하세요.

참고: DHCP 옵션 세트가 여러 운영 체제를 사용하는 인스턴스를 포함하있는 VPC와 연결된 경우 도메인 이름을 하나만 지정하는 것이 좋습니다.

EBS 볼륨 암호화에 대한 키 정책 구성

Auto Scaling 그룹 서비스 역할에는 암호화된 EBS 볼륨에서 작업하기 위한 다음 권한이 있어야 합니다.

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

올바른 KMS 키 정책을 구성하려면 암호화된 볼륨에 사용하기 위한 필수 AWS KMS 키 정책 섹션을 참조하세요.

암호화된 EBS 볼륨에서 더 많은 IAM 역할로 작업할 수 있도록 키 정책을 수정할 수 있습니다. 자세한 내용은 키 사용자가 KMS 키를 사용할 수 있도록 허용을 참조하세요.

KMS 키 액세스 관리에 대한 자세한 내용은 KMS 키에 대한 액세스 관리를 참조하세요.

시작 템플릿 버전 업데이트

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

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

  1. EKS 콘솔을 엽니다.
  2. 업데이트할 노드 그룹이 포함된 클러스터를 선택합니다.
  3. 구성(Configuration) 탭을 선택한 다음 컴퓨팅(Compute) 탭을 선택합니다.
  4. 노드 그룹 페이지의 시작 템플릿 아래에서 **버전 변경(Change version)**을 선택합니다.
  5. 노드 그룹에 적용할 버전을 선택합니다. 업데이트 전략이 **롤링 업데이트(Rolling Update)**로 설정되어 있는지 확인합니다.
  6. **업데이트(Update)**를 선택합니다.

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

사용자 지정 시작 템플릿을 사용하지 않고 EC2LaunchTemplateVersionMismatch 오류가 발생하는 경우 작업자 노드에서 EKS 노드 그룹과 동일한 버전을 사용하지 않은 것입니다. 이 문제를 해결하려면 Auto Scaling 콘솔로 이동하여 EKS가 생성한 버전으로 되돌립니다. 자세한 내용은 관리형 노드 그룹 오류를 참조하세요.


AWS 공식
AWS 공식업데이트됨 2년 전
댓글 없음

관련 콘텐츠