내 작업자 노드가 내 Amazon EKS 클러스터에 조인되도록 하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 10월 17일

내 작업자 노드가 Amazon EKS(Amazon Elastic Kubernetes Service) 클러스터에 조인되지 않습니다. 이 문제를 해결하려면 어떻게 해야 합니까?

간략한 설명

작업자 노드가 Amazon EKS 클러스터에 조인되도록 하려면 다음을 완료해야 합니다.

  • Amazon VPC(Amazon Virtual Private Cloud)에 대한 DNS 지원이 있는지 확인
  • 작업자 노드의 인스턴스 프로파일에 대한 올바른 권한 얻기
  • 작업자 노드에 대한 사용자 데이터 구성
  • 작업자 노드가 Amazon EKS 클러스터와 연결된 서브넷에 있는지 확인
  • 작업자 노드의 NodeInstanceRoleaws-auth ConfigMap 업데이트
  • 작업자 노드의 보안 그룹 요구 사항 충족
  • 작업자 노드에 대한 태그 설정
  • 작업자 노드가 Amazon EKS 클러스터의 API 서버 엔드포인트에 도달할 수 있는지 확인

중요: 다음 단계에는 다음 기준을 충족하지 않는 환경에서 Amazon EKS 클러스터에 작업자 노드를 등록하는 데 필요한 추가 구성이 포함되어 있지 않습니다.

  • Amazon EKS 클러스터의 VPC에서 구성 파라미터 domain-name-serversAmazonProvidedDNS로 설정되어 있습니다. 자세한 내용은 DHCP 옵션 세트를 참조하십시오.
  • 작업자 노드를 시작하기 위해 Amazon EKS 최적화 Linux Amazon 머신 이미지(AMI)를 사용하고 있습니다.
    참고: Amazon EKS 최적화 Linux AMI는 작업자 노드를 Amazon EKS 클러스터에 등록하기 위한 /etc/eks/bootstrap.sh 부트스트랩 스크립트를 포함하여 필요한 모든 구성을 제공합니다.

​해결 방법

VPC에 대한 DNS 지원이 있는지 확인

Amazon EKS 클러스터의 VPC가 DNS 호스트 이름 및 DNS 확인을 지원하는지 확인합니다.

필요한 경우 VPC에 대한 DNS 지원을 조회하고 업데이트합니다.

작업자 노드의 인스턴스 프로파일에 대한 올바른 권한 얻기

작업자 노드의 인스턴스 프로파일과 연결된 역할에 다음 AWS 관리형 정책을 연결합니다.

  • AmazonEKSWorkerNodePolicy
  • AmazonEKS_CNI_Policy
  • AmazonEC2ContainerRegistryReadOnly

역할에 정책을 연결하려면 IAM 자격 증명 권한 추가(콘솔)를 참조하십시오.

작업자 노드에 대한 사용자 데이터 구성

참고: AWS CloudFormation을 사용하여 작업자 노드를 시작하는 경우 작업자 노드에 대한 사용자 데이터를 구성할 필요가 없습니다.

작업자 노드에 대한 사용자 데이터를 구성하려면 Amazon EC2(Amazon Elastic Compute Cloud) 인스턴스 시작 시 사용자 데이터를 지정합니다.

예를 들어 Terraform과 같은 타사 도구를 사용하는 경우, 다음과 같이 Amazon EKS 작업자 노드를 시작하도록 [User data] 필드를 업데이트합니다.

#!/bin/bash
set -o xtrace
/etc/eks/bootstrap.sh ${ClusterName} ${BootstrapArguments}

중요: ${ClusterName}은 Amazon EKS 클러스터의 이름으로 바꿉니다. ${BootstrapArguments} 속성은 추가 부트스트랩 값으로 바꾸거나 비워 둡니다.

작업자 노드가 Amazon EKS 클러스터와 연결된 서브넷에 있는지 확인

1.    Amazon EKS 콘솔을 엽니다.

2.    [클러스터]를 선택한 다음 해당 클러스터를 선택합니다.

3.    [네트워킹] 섹션에서 클러스터와 연결된 서브넷을 식별합니다.

4.    작업자 노드가 3단계에 나열된 서브넷에만 해당하는지 확인합니다.

작업자 노드의 NodeInstanceRole로 aws-auth ConfigMap 업데이트

aws-auth ConfigMap이 작업자 노드의 IAM 역할(인스턴스 프로파일이 아님)로 올바르게 구성되었는지 확인합니다.

작업자 노드의 보안 그룹 요구 사항 충족

제어 플레인 보안 그룹 및 작업자 노드 보안 그룹이 인바운드 및 아웃바운드 트래픽에 대한 권장 설정으로 구성되어 있는지 확인합니다.

자세한 내용은 클러스터 보안 그룹 고려 사항을 참조하십시오.

작업자 노드에 대한 태그 설정

작업자 노드의 Tag 속성에서 keykubernetes.io/cluster/clusterName으로 설정하고 valueowned로 설정합니다.

자세한 내용은 클러스터 VPC 고려 사항을 참조하십시오.

작업자 노드가 Amazon EKS 클러스터의 API 서버 엔드포인트에 도달할 수 있는지 확인

다음을 고려하십시오.

  • 작업자 노드는 NAT 게이트웨이 또는 인터넷 게이트웨이를 통해 API 엔드포인트로 연결되는 경로가 있는 라우팅 테이블과 연결된 서브넷에서 시작할 수 있습니다.
  • 작업자 노드가 제한된 프라이빗 네트워크에서 시작되는 경우에는 작업자 노드가 Amazon EKS API 서버 엔드포인트에 도달할 수 있는지 확인합니다.
  • 작업자 노드가 AmazonProvidedDNS 대신 사용자 지정 DNS를 사용하여 VPC의 일부로 시작되는 경우, 엔드포인트에 대한 퍼블릭 액세스가 비활성화되고 프라이빗 액세스만 활성화된 경우 작업자 노드가 Amazon EKS 클러스터의 엔드포인트를 확인하지 못할 수 있습니다. 자세한 내용은 Enabling DNS resolution for Amazon EKS cluster endpoints를 참조하십시오. 

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

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


도움이 필요하십니까?