최적의 Amazon EC2 노드 인스턴스 유형 선택
최적의 Amazon EC2 노드 인스턴스 유형 선택
Amazon EKS 워커 노드에 적합한 Amazon EC2 인스턴스 유형을 선택하는 기준과 maxPods 결정 방식을 설명합니다.
출처: 문서
본문
Amazon EC2는 워커 노드에 다양한 인스턴스 유형을 제공합니다. 각 인스턴스 유형은 서로 다른 컴퓨팅, 메모리, 스토리지, 네트워크 기능을 제공합니다. 또한 각 인스턴스는 이러한 기능에 따라 인스턴스 패밀리로 그룹화됩니다. 목록은 Amazon EC2 사용자 가이드의 Available instance types를 참조하세요. Amazon EKS는 이러한 지원을 위해 Amazon EC2 AMI의 여러 변형을 릴리스합니다. 선택한 인스턴스 유형이 Amazon EKS와 호환되는지 확인하려면 다음 기준을 고려하세요.
- 모든 Amazon EKS AMI는 현재
mac패밀리를 지원하지 않습니다. - Arm 및 비가속(Accelerated) 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가 지원하는 인스턴스 유형 중에서 선택할 때 각 유형의 다음 기능을 고려하세요.
노드 그룹의 인스턴스 수
일반적으로 특히 Daemonset이 많은 경우 더 적고 더 큰 인스턴스가 좋습니다. 각 인스턴스는 API 서버에 API 호출을 필요로 하므로 인스턴스가 많을수록 API 서버에 더 많은 부하가 걸립니다.
운영 체제
Linux, Windows, Bottlerocket에 대해 지원되는 인스턴스 유형을 검토하세요. Windows 인스턴스를 만들기 전에 EKS 클러스터에 Windows 노드 배포를 검토하세요.
하드웨어 아키텍처
x86이 필요한가요, Arm이 필요한가요? Arm 인스턴스를 배포하기 전에 Amazon EKS 최적화 Arm Amazon Linux AMI를 검토하세요. Nitro System(Linux 또는 Windows) 기반 인스턴스나 가속 기능(Accelerated capabilities)이 있는 인스턴스가 필요한가요? 가속 기능이 필요하면 Amazon EKS에서 Linux만 사용할 수 있습니다.
최대 Pod 수
각 Pod에는 고유 IP 주소가 할당되므로 인스턴스 유형이 지원하는 IP 주소 수는 인스턴스에서 실행할 수 있는 Pod 수를 결정하는 요소입니다. 인스턴스 유형에 대한 최대 Pod 수가 어떻게 결정되는지 이해하려면 maxPods가 결정되는 방식을 참조하세요.
AWS Nitro System 인스턴스 유형은 선택적으로 비-Nitro System 인스턴스 유형보다 훨씬 더 많은 IP 주소를 지원합니다. 그러나 인스턴스에 할당된 모든 IP 주소가 Pod에서 사용 가능한 것은 아닙니다. 인스턴스에 훨씬 더 많은 IP 주소를 할당하려면 클러스터에 Amazon VPC CNI 애드온 버전 1.9.0 이상이 설치되고 적절히 구성되어야 합니다. 자세한 내용은 접두사로 Amazon EKS 노드에 더 많은 IP 주소 할당을 참조하세요. 인스턴스에 가장 많은 수의 IP 주소를 할당하려면 클러스터에 Amazon VPC CNI 애드온 버전 1.10.1 이상을 설치하고 IPv6 패밀리로 클러스터를 배포해야 합니다.
IP 패밀리
클러스터에 IPv4 패밀리를 사용하는 경우 지원되는 모든 인스턴스 유형을 사용할 수 있으며, 클러스터가 Pod와 서비스에 개인 IPv4 주소를 할당할 수 있습니다. 그러나 클러스터에 IPv6 패밀리를 사용하려면 AWS Nitro System 인스턴스 유형이나 베어 메탈(bare metal) 인스턴스 유형을 사용해야 합니다. Windows 인스턴스에는 IPv4만 지원됩니다. 클러스터는 Amazon VPC CNI 애드온 버전 1.10.1 이상을 실행해야 합니다. IPv6 사용에 대한 자세한 내용은 클러스터, Pod, 서비스에 대한 IPv6 주소 학습을 참조하세요.
실행 중인 Amazon VPC CNI 애드온 버전
Kubernetes용 Amazon VPC CNI 플러그인의 최신 버전은 이러한 인스턴스 유형을 지원합니다. 최신 지원 인스턴스 유형을 활용하려면 Amazon VPC CNI 애드온 버전을 업데이트해야 할 수 있습니다. 자세한 내용은 Amazon VPC CNI로 Pod에 IP 할당을 참조하세요. 최신 버전은 Amazon EKS와 함께 사용할 최신 기능을 지원합니다. 이전 버전은 모든 기능을 지원하지 않습니다. GitHub의 Changelog에서 다양한 버전이 지원하는 기능을 확인할 수 있습니다.
노드를 생성하는 AWS 리전
모든 인스턴스 유형이 모든 AWS 리전에서 사용 가능한 것은 아닙니다.
Pod용 보안 그룹 사용 여부
Pod용 보안 그룹(security groups for Pods)을 사용하는 경우 특정 인스턴스 유형만 지원됩니다. 자세한 내용은 개별 Pod에 보안 그룹 할당을 참조하세요.
maxPods가 결정되는 방식
노드에 적용되는 최종 maxPods 값은 특정 우선순위 순서로 상호 작용하는 여러 구성 요소에 따라 달라집니다. 이 순서를 이해하면 maxPods를 사용자 지정할 때 예기치 않은 동작을 피하는 데 도움이 됩니다.
우선순위 순서(높은 것부터 낮은 것):
-
관리형 노드 그룹 강제 적용 — 사용자 지정 AMI 없이 관리형 노드 그룹을 사용하면 Amazon EKS가 노드의 사용자 데이터에서
maxPods에 상한을 강제합니다. vCPU가 30개 미만인 인스턴스의 경우 상한은110입니다. vCPU가 30개보다 많은 인스턴스의 경우 상한은250입니다. 이 값은maxPodsExpression을 포함한 다른 모든maxPods구성보다 우선합니다. -
kubelet
maxPods구성 — kubelet 구성에서maxPods를 직접 설정하면(예: 사용자 지정 AMI가 있는 시작 템플릿을 통해) 이 값이maxPodsExpression보다 우선합니다. -
nodeadm
maxPodsExpression—NodeConfig에서maxPodsExpression을 사용하면 nodeadm이 표현식을 평가하여maxPods를 계산합니다. 이는 더 높은 우선순위 소스에서 값이 이미 설정되지 않은 경우에만 유효합니다. -
기본 ENI 기반 계산 — 다른 값이 설정되지 않으면 AMI가 인스턴스 유형이 지원하는 탄력적 네트워크 인터페이스(ENI)와 IP 주소 수를 기준으로
maxPods를 계산합니다. 이는 공식(ENI 수 × (ENI당 IP − 1)) + 2와 같습니다.+ 2는 모든 노드에서 실행되며 Pod IP 주소를 소비하지 않는 Amazon VPC CNI와kube-proxy를 위한 것입니다.
중요
관리형 노드 그룹을 사용하고
NodeConfig에서maxPodsExpression을 설정하면 관리형 노드 그룹의 강제 적용이 표현식을 재정의합니다. 관리형 노드 그룹에서 사용자 지정maxPods값을 사용하려면 시작 템플릿에 사용자 지정 AMI를 지정하고maxPods를 직접 설정해야 합니다. 자세한 내용은 시작 템플릿으로 관리형 노드 사용자 지정을 참조하세요.
관리형 노드 그룹과 자체 관리형 노드
관리형 노드 그룹(사용자 지정 AMI 없음)의 경우 Amazon EKS는 maxPods 값을 노드의 부트스트랩 사용자 데이터에 주입합니다. 즉:
maxPods값은 인스턴스 크기에 따라 항상110또는250으로 제한됩니다.- 구성한
maxPodsExpression은 이 주입된 값에 의해 재정의됩니다. - 다른
maxPods값을 사용하려면 시작 템플릿에 사용자 지정 AMI를 지정하고bootstrap.sh스크립트에--use-max-pods false와 함께--kubelet-extra-args '--max-pods=my-value'를 전달하세요. 예시는 시작 템플릿으로 관리형 노드 사용자 지정을 참조하세요.
자체 관리형 노드(self-managed nodes)에서는 부트스트랩 프로세스를 완전히 제어할 수 있습니다. NodeConfig에서 maxPodsExpression을 사용하거나 bootstrap.sh에 --max-pods를 직접 전달할 수 있습니다.
EKS Auto Mode 고려 사항
EKS Auto Mode는 노드의 Pod 수를 다음 중 더 낮은 값으로 제한합니다.
- 110 Pod 하드 상한(hard cap)
ENI 수 × (ENI당 IP − 1)