네트워킹 - Amazon EKS

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

네트워킹

노드 간 통신이 많은 애플리케이션의 경우 더 높은 네트워크 대역폭 또는 탄력적 패브릭 어댑터 고려

노드 간 통신 요구가 높은 Amazon EKS의 분산 훈련 워크로드의 경우 네트워크 대역폭 또는 EFA(Elastic Fabric Adapter)가 더 높은 인스턴스를 선택하는 것이 좋습니다. 네트워크 성능이 충분하지 않으면 데이터 전송에 병목 현상이 발생하여 분산 다중 GPU 훈련과 같은 기계 학습 작업이 느려질 수 있습니다. 추론 워크로드는 일반적으로 노드 간 통신이 높지 않습니다.

예제

예를 들어 Karpenter를 사용하는 경우:

apiVersion: v1 kind: Pod metadata: name: ml-workload spec: nodeSelector: karpenter.k8s.aws/instance-network-bandwidth: "100000" # 100 Gbps in Mbps node.kubernetes.io/instance-type: p5.48xlarge # EFA-enabled instance containers: - name: training-job image: `763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-inference:2.6.0-gpu-py312-cu124-ubuntu22.04-ec2-v1.6` resources: limits: vpc.amazonaws.com/efa: 1 # Requires EFA device plugin

훈련 작업에 EFA를 활용하려면 컨테이너 이미지에 MPI 및 NCCL과 같은 도구가 설치되어 있는지 확인합니다.

사용 가능한 IP 주소 수를 늘려 포드 시작 시간 단축

EKS에서 각 포드에는 VPC CIDR 블록의 IP 주소가 필요합니다. 클러스터가 더 많은 노드와 포드로 확장되면 IP 주소 소진 또는 느린 성능이 발생할 위험이 있지만 접두사 위임을 활성화하면 IP 범위를 미리 할당하고 EC2 API 호출을 줄여 이러한 문제를 완화하여 포드 시작 시간을 단축하고 확장성을 개선할 수 있습니다.

클러스터를 생성한 후 접두사 위임을 활성화하면 VPC 컨테이너 네트워크 인터페이스(CNI)가 EC2 인스턴스의 네트워크 인터페이스에 IP 접두사(/28, 각 IP 주소 16개 제공)를 할당할 수 있습니다. 즉, 각 노드가 더 많은 포드를 지원하여 IP 부족 위험을 줄일 수 있습니다. 예를 들어 c5.4xlarge 인스턴스에서 접두사 위임을 사용하여 최대 110개의 포드를 지원할 수 있습니다.

접두사 위임은 작은 포드가 많은 환경에서 IP 사용을 최적화하는 데 중요하지만 AI/ML 워크로드는 더 적고 큰 포드(예: GPU당 포드 1개)를 사용하는 경우가 많습니다. 접두사 위임을 활성화하면 VPC CNI가 웜 풀을 유지하여 더 빠른 포드 시작을 위해 접두사를 사전 할당할 수 있습니다. 즉, IP 주소를 즉시 사용할 수 있으므로 비접두사 모드에서 온디맨드 할당에 비해 포드 초기화에 필요한 시간이 줄어듭니다. 이러한 경우 접두사 위임을 활성화하여 IP를 절감하면 AI/ML 워크로드에 성능 이점이 있습니다. IP 주소 구성에 필요한 EC2 API 호출 수를 줄이고 IP 범위를 사전 할당함으로써 접두사 위임을 사용하면 포드 시작 시간을 단축할 수 있으며, 이는 AI/ML 워크로드를 빠르게 확장하는 데 특히 유용합니다.

접두사 위임을 활성화하려면:

kubectl set env daemonset/aws-node -n kube-system ENABLE_PREFIX_DELEGATION=true

특히 대규모 배포에서 IP 주소 소진을 방지하기 위해 VPC 서브넷을 적절하게 계획하고 VPCs 간 중복을 방지하기 위해 CIDR 블록을 관리합니다. 자세한 내용은 IP 주소 사용률 최적화접두사가 있는 Amazon EKS 노드에 더 많은 IP 주소 할당을 참조하세요.