Amazon EC2 인스턴스 유형 선택 - Amazon EKS

Amazon EC2 인스턴스 유형 선택

Amazon EC2에서는 워커 노드에 대한 다양한 인스턴스 유형을 제공합니다. 인스턴스 유형마다 서로 다른 컴퓨팅, 메모리, 스토리지 및 네트워크 기능을 제공합니다. 또한 각 인스턴스는 이러한 기능에 따라 한 인스턴스 패밀리로 그룹화됩니다. 목록은 Linux 인스턴스용 Amazon EC2 사용 설명서사용 가능한 인스턴스 유형Windows 인스턴스용 Amazon EC2 사용 설명서사용 가능한 인스턴스 유형을 참조하세요. Amazon EKS에서는 Amazon EC2 AMI의 여러 변형을 출시하여 지원을 사용 설정합니다. 선택한 인스턴스 유형이 Amazon EKS와 호환되는지 확인하려면 다음 기준을 고려하세요.

  • 모든 Amazon EKS AMI에서는 현재 g5gmac 패밀리를 지원하지 않습니다.

  • Arm 및 가속화되지 않은 Amazon EKS AMI에서는 g3, g4, infp 패밀리를 지원하지 않습니다.

  • 가속화된 Amazon EKS AMI에서는 a, c, hpc, mt 패밀리를 지원하지 않습니다.

Amazon EKS에서 지원하는 인스턴스 유형 중에서 선택하는 경우 각 유형의 다음 기능을 고려하세요.

노드 그룹의 인스턴스 수

특히 Daemonsets가 많은 경우, 일반적으로 수는 적고 크기는 큰 인스턴스가 더 좋습니다. 각 인스턴스에는 API 서버에 대한 API 호출이 필요하므로 인스턴스가 많을수록 API 서버에 더 많은 부하가 발생합니다.

운영 체제

LinuxWindows 및 Bottlerocket에 대해 지원되는 인스턴스 유형을 검토합니다. Windows 인스턴스를 생성하기 전에 Amazon EKS 클러스터에 대해 Windows 지원 사용 설정를 검토하세요.

하드웨어 아키텍처

x86 또는 Arm이 필요합니까? Arm에 Linux만 배포할 수 있습니다. Arm 인스턴스를 배포하기 전에 Amazon EKS 최적화 Arm Amazon Linux AMI를 검토하세요. Nitro System(Linux 또는 Windows)에 구축된 인스턴스나 가속화된 기능이 있는 인스턴스가 필요하신가요? 가속화된 기능이 필요한 경우 Amazon EKS에서 Linux만 사용할 수 있습니다.

Pods의 최대 개수

각 Pod에 고유한 IP 주소가 할당되므로 인스턴스 유형에서 지원하는 IP 주소 수는 인스턴스에서 실행할 수 있는 Pods 수를 결정하는 요소입니다. 인스턴스 유형이 지원하는 Pods의 수를 수동으로 확인하려면 각 Amazon EC2 인스턴스 유형의 Amazon EKS 권장 최대 Pods 수 섹션을 참조하세요.

참고

Amazon EKS에 최적화된 v20220406 이상의 Amazon Linux 2 AMI를 사용하는 경우 최신 AMI로 업그레이드하지 않고도 새로운 인스턴스 유형을 사용할 수 있습니다. 이러한 AMI의 경우 AMI는 eni-max-pods.txt 파일에 나열되지 않으면 필요한 max-pods 값을 자동으로 계산합니다. 현재 미리 보기 중인 인스턴스 유형은 기본적으로 Amazon EKS에서 지원되지 않을 수 있습니다. 이러한 유형에 대한 max-pods의 값은 여전히 AMI의 eni-max-pods.txt에 추가되어야 합니다.

AWS Nitro 시스템(Nitro System) 인스턴스 유형은 Nitro 시스템 이외의 인스턴스 유형보다 훨씬 많은 IP 주소를 선택적으로 지원합니다. 그러나 인스턴스에 할당된 일부 IP 주소만 Pods에 사용할 수 있습니다. 훨씬 더 많은 수의 IP 주소를 인스턴스에 할당하려면 클러스터에 버전 1.9.0 이상의 Amazon VPC CNI 추가 기능이 설치되어 있어야 하며 올바르게 구성되어 있어야 합니다. 자세한 내용은 Amazon EC2 노드에 사용 가능한 IP 주소 증량 섹션을 참조하세요. 인스턴스에 가장 많은 수의 IP 주소를 할당하려면 클러스터에 버전 1.10.1 이상의 Amazon VPC CNI 추가 기능이 설치되어 있어야 하며 IPv6 패밀리를 사용하여 클러스터를 배포해야 합니다.

IP 패밀리

클러스터가 Pods 및 서비스에 프라이빗 IPv4 주소를 할당하도록 허용하는 클러스터용 IPv4 패밀리를 사용하는 경우 지원되는 모든 인스턴스 유형을 사용할 수 있습니다. 클러스터에 대한 IPv6 패밀리를 사용하려는 경우 AWS Nitro 시스템(Nitro System) 인스턴스 유형 또는 베어 메탈 인스턴스 유형을 사용해야 합니다. Windows 인스턴스에는 IPv4만 지원됩니다. 클러스터에서 버전 1.10.1 이상의 Amazon VPC CNI 추가 기능을 실행하고 있어야 합니다. IPv6 사용에 관한 자세한 내용은 자습서: Pods 및 services에 IPv6 주소 할당 부분을 참조하세요.

실행 중인 Amazon VPC CNI 추가 기능의 버전

최신 버전의 Kubernetes용 Amazon VPC CNI 플러그인은 다음 인스턴스 유형을 지원합니다. 지원되는 최신 인스턴스 유형을 활용하려면 Amazon VPC CNI 추가 기능 버전을 업데이트해야 할 수 있습니다. 자세한 내용은 Amazon VPC CNI plugin for Kubernetes Amazon EKS 추가 기능을 사용한 작업 섹션을 참조하세요. 최신 버전은 Amazon EKS에서 사용할 최신 기능을 지원합니다. 이전 버전에서는 일부 기능을 지원하지 않습니다. GitHub의 Changelog에 있는 다양한 버전에서 지원하는 기능을 볼 수 있습니다.

노드를 생성하는 AWS 리전

AWS 리전에 따라 일부 인스턴스 유형은 사용할 수 없습니다.

Pods에 대한 보안 그룹 사용 여부

Pods에 대한 보안 그룹을 사용하는 경우 특정 인스턴스 유형만 지원됩니다. 자세한 내용은 Pods의 보안 그룹 섹션을 참조하세요.

각 Amazon EC2 인스턴스 유형의 Amazon EKS 권장 최대 Pods 수

각 Pod에 고유한 IP 주소가 할당되므로 인스턴스 유형에서 지원하는 IP 주소 수는 인스턴스에서 실행할 수 있는 Pods 수를 결정하는 요소입니다. Amazon EKS는 각 인스턴스 유형에서 실행할 Amazon EKS 권장 최대 Pods 수를 결정하기 위해 다운로드하여 실행할 수 있는 스크립트를 제공합니다. 스크립트는 각 인스턴스의 하드웨어 속성 및 구성 옵션을 사용하여 최대 Pods 수를 결정합니다. 이 단계에서 반환된 수를 사용하여 인스턴스의 서브넷과 다른 서브넷의 Pods에 IP 주소 할당인스턴스에 대한 IP 주소 수 대량 증가와 같은 기능을 활성화할 수 있습니다. 여러 인스턴스 유형을 통해 관리형 노드 그룹을 사용하는 경우 모든 인스턴스 유형에 작동하는 값을 사용합니다.

  1. 각 인스턴스 유형에 대한 최대 Pods 수를 계산하는 데 사용할 수 있는 스크립트를 다운로드합니다.

    curl -O https://raw.githubusercontent.com/awslabs/amazon-eks-ami/master/files/max-pods-calculator.sh
  2. 컴퓨터에서 스크립트를 실행 파일로 표시합니다.

    chmod +x max-pods-calculator.sh
  3. 스크립트를 실행하여 m5.large를 배포하려는 인스턴스 유형으로 바꾸고 1.9.0-eksbuild.1을 Amazon VPC CNI 추가 기능 버전으로 바꿉니다. 추가 기능 버전을 확인하려면 Amazon VPC CNI plugin for Kubernetes Amazon EKS 추가 기능을 사용한 작업의 업데이트 절차를 참조하세요.

    ./max-pods-calculator.sh --instance-type m5.large --cni-version 1.9.0-eksbuild.1

    예제 출력은 다음과 같습니다.

    29

    스크립트에 다음 옵션을 추가하여 선택적 기능을 사용할 때 지원되는 최대 Pods 수를 확인할 수 있습니다.

    • --cni-custom-networking-enabled - 인스턴스의 서브넷과 다른 서브넷의 IP 주소를 할당하려는 경우 이 옵션을 사용합니다. 자세한 내용은 포드에 대한 사용자 지정 네트워킹 섹션을 참조하세요. 동일한 예제 값을 사용하여 이전 스크립트에 이 옵션을 추가하면 20이 표시됩니다.

    • --cni-prefix-delegation-enabled - 각 Elastic 네트워크 인터페이스에 훨씬 더 많은 IP 주소를 할당하려는 경우 이 옵션을 사용합니다. 이 기능을 사용하려면 Nitro 시스템과 Amazon VPC CNI 추가 기능 버전 1.9.0 이상에서 실행되는 Amazon Linux 인스턴스가 필요합니다. 자세한 내용은 Amazon EC2 노드에 사용 가능한 IP 주소 증량 섹션을 참조하세요. 동일한 예제 값을 사용하여 이전 스크립트에 이 옵션을 추가하면 110이 표시됩니다.

--help 옵션을 사용하여 스크립트를 실행하면 사용 가능한 모든 옵션을 볼 수 있습니다.

참고

최대 Pods 계산기 스크립트는 Kubernetes 확장성 임곗값과 권장 설정을 기반으로 반환 값을 110으로 제한합니다. 인스턴스 유형의 vCPU가 30개 이상인 경우 한도는 내부 Amazon EKS 확장성 팀 테스팅을 기반으로 한 수치로 올라갑니다.250 자세한 내용은 Amazon VPC CNI 플러그인을 통한 노드당 포드 제한 증가 블로그 게시물을 참조하세요.