최적의 Amazon EC2 노드 인스턴스 유형 선택
Amazon EC2에서는 워커 노드에 대한 다양한 인스턴스 유형을 제공합니다. 인스턴스 유형마다 서로 다른 컴퓨팅, 메모리, 스토리지 및 네트워크 기능을 제공합니다. 또한 각 인스턴스는 이러한 기능에 따라 한 인스턴스 패밀리로 그룹화됩니다. 목록은 Amazon EC2 사용 설명서의 사용 가능한 인스턴스 유형을 참조하세요. Amazon EKS에서는 Amazon EC2 AMI의 여러 변형을 출시하여 지원을 사용 설정합니다. 선택한 인스턴스 유형이 Amazon EKS와 호환되는지 확인하려면 다음 기준을 고려하세요.
-
모든 Amazon EKS AMI에서는 현재
g5g
및mac
패밀리를 지원하지 않습니다. -
Arm 및 가속화되지 않은 Amazon EKS AMI에서는
g3
,g4
,inf
및p
패밀리를 지원하지 않습니다. -
가속화된 Amazon EKS AMI에서는
a
,c
,hpc
,m
및t
패밀리를 지원하지 않습니다. -
ARM 기반 인스턴스에서 Amazon Linux 2023(AL2023)은 Graviton2 이상 프로세서를 사용하는 인스턴스 유형만 지원합니다. AL2023은
A1
인스턴스를 지원하지 않습니다.
Amazon EKS에서 지원하는 인스턴스 유형 중에서 선택하는 경우 각 유형의 다음 기능을 고려하세요.
- 노드 그룹의 인스턴스 수
-
특히 Daemonsets가 많은 경우, 일반적으로 수는 적고 크기는 큰 인스턴스가 더 좋습니다. 각 인스턴스에는 API 서버에 대한 API 호출이 필요하므로 인스턴스가 많을수록 API 서버에 더 많은 부하가 발생합니다.
- 운영 체제
-
Linux, Windows 및 Bottlerocket
에 대해 지원되는 인스턴스 유형을 검토합니다. Windows 인스턴스를 생성하기 전에 EKS 클러스터에 Windows 노드 배포를 검토합니다. - 하드웨어 아키텍처
-
x86 또는 Arm이 필요합니까? Arm 인스턴스를 배포하기 전에 Amazon EKS 최적화 Arm Amazon Linux AMIs 검토합니다. Nitro System(Linux 또는 Windows)에 구축된 인스턴스나 가속화된 기능이 있는 인스턴스가 필요하신가요? 가속화된 기능이 필요한 경우 Amazon EKS에서 Linux만 사용할 수 있습니다.
- Pods 최대 개수
-
각 Pod에 고유한 IP 주소가 할당되므로 인스턴스 유형에서 지원하는 IP 주소 수는 인스턴스에서 실행할 수 있는 Pods 수를 결정하는 요소입니다. 인스턴스 유형이 지원하는 Pods의 수를 수동으로 결정하려면 각 Amazon EC2 인스턴스 유형의 Amazon EKS 권장 최대 Pods 수 +
NOTE: If you’re using an Amazon EKS optimized Amazon Linux 2 AMI that’s `v20220406
이상을 참조하세요. 최신 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 EKS 노드에 추가 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, 및 서비스에 대한 IPv6 주소에 대해 알아보기 부분을 참조하세요. - 실행 중인 Amazon VPC CNI 추가 기능의 버전
-
최신 버전의 Kubernetes용 Amazon VPC CNI 플러그인
은 다음 인스턴스 유형 을 지원합니다. 지원되는 최신 인스턴스 유형을 활용하려면 Amazon VPC CNI 추가 기능 버전을 업데이트해야 할 수 있습니다. 자세한 내용은 Amazon VPC CNI 단원을 참조하십시오. 최신 버전은 Amazon EKS에서 사용할 최신 기능을 지원합니다. 이전 버전에서는 일부 기능을 지원하지 않습니다. GitHub의 Changelog 에 있는 다양한 버전에서 지원하는 기능을 볼 수 있습니다. - 노드를 생성하는 AWS 리전
-
AWS 리전에 따라 일부 인스턴스 유형은 사용할 수 없습니다.
- Pods에 대한 보안 그룹 사용 여부
-
Pods에 대한 보안 그룹을 사용하는 경우 특정 인스턴스 유형만 지원됩니다. 자세한 내용은 개별 pods에 보안 그룹 할당 단원을 참조하십시오.
각 Amazon EC2 인스턴스 유형의 Amazon EKS 권장 최대 Pods 수
각 Pod에 고유한 IP 주소가 할당되므로 인스턴스 유형에서 지원하는 IP 주소 수는 인스턴스에서 실행할 수 있는 Pods 수를 결정하는 요소입니다. Amazon EKS는 각 인스턴스 유형에서 실행할 Amazon EKS 권장 최대 Pods 수를 결정하기 위해 다운로드하여 실행할 수 있는 스크립트를 제공합니다. 스크립트는 각 인스턴스의 하드웨어 속성 및 구성 옵션을 사용하여 최대 Pods 수를 결정합니다. 이 단계에서 반환된 수를 사용하여 인스턴스의 서브넷과 다른 서브넷의 포드에 IP 주소 할당 및 인스턴스에 대한 IP 주소 수 크게 증가와 같은 기능을 활성화할 수 있습니다. 여러 인스턴스 유형을 통해 관리형 노드 그룹을 사용하는 경우 모든 인스턴스 유형에 작동하는 값을 사용합니다.
-
각 인스턴스 유형에 대한 최대 Pods 수를 계산하는 데 사용할 수 있는 스크립트를 다운로드합니다.
curl -O https://raw.githubusercontent.com/awslabs/amazon-eks-ami/master/templates/al2/runtime/max-pods-calculator.sh
-
컴퓨터에서 스크립트를 실행 파일로 표시합니다.
chmod +x max-pods-calculator.sh
-
스크립트를 실행하여
m5.large
를 배포하려는 인스턴스 유형으로 바꾸고,1.9.0-eksbuild.1
을 Amazon VPC CNI 추가 기능 버전으로 바꿉니다. 추가 기능 버전을 확인하려면 Amazon VPC CNI를 사용하여 포드에 IPs 할당의 업데이트 절차를 참조하세요../max-pods-calculator.sh --instance-type m5.large --cni-version 1.9.0-eksbuild.1
예제 출력은 다음과 같습니다.
29
스크립트에 다음 옵션을 추가하여 선택적 기능을 사용할 때 지원되는 최대 Pods 수를 확인할 수 있습니다.
-
--cni-custom-networking-enabled
- 인스턴스의 서브넷과 다른 서브넷의 IP 주소를 할당하려는 경우 이 옵션을 사용합니다. 자세한 내용은 사용자 지정 네트워킹을 통해 대체 서브넷에 pods 배포 단원을 참조하십시오. 동일한 예제 값을 사용하여 이전 스크립트에 이 옵션을 추가하면20
이 표시됩니다. -
--cni-prefix-delegation-enabled
- 각 Elastic 네트워크 인터페이스에 훨씬 더 많은 IP 주소를 할당하려는 경우 이 옵션을 사용합니다. 이 기능을 사용하려면 Nitro 시스템과 Amazon VPC CNI 추가 기능 버전1.9.0
이상에서 실행되는 Amazon Linux 인스턴스가 필요합니다. 자세한 내용은 접두사를 사용하여 Amazon EKS 노드에 추가 IP 주소 할당 단원을 참조하십시오. 동일한 예제 값을 사용하여 이전 스크립트에 이 옵션을 추가하면110
이 표시됩니다.
-
--help
옵션을 사용하여 스크립트를 실행하면 사용 가능한 모든 옵션을 볼 수 있습니다.
참고
최대 Pods 계산기 스크립트는 Kubernetes 확장성 임곗값110
으로 제한합니다. 인스턴스 유형의 vCPU가 30개 이상인 경우 한도는 내부 Amazon EKS 확장성 팀 테스팅을 기반으로 한 수치로 올라갑니다.250
자세한 내용은 Amazon VPC CNI 플러그인을 통한 노드당 포드 제한 증가