이 페이지 개선에 도움 주기
이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다.
포드에 여러 네트워크 인터페이스 연결
기본적으로 Amazon VPC CNI 플러그인은 각 포드에 1개의 IP 주소를 할당합니다. 이 IP 주소는 포드의 모든 수신 및 발신 트래픽을 처리하는 탄력적 네트워크 인터페이스에 연결됩니다. 초당 대역폭 및 패킷 속도 성능을 높이려면 VPC CNI의 멀티 NIC 기능을 사용하여 멀티 호밍 포드를 구성할 수 있습니다. 멀티 호밍 포드는 여러 네트워크 인터페이스(및 여러 IP 주소)를 사용하는 단일 Kubernetes 포드입니다. 멀티 호밍 포드를 실행하면 동시 연결을 사용하여 여러 네트워크 인터페이스에 애플리케이션 트래픽을 분산할 수 있습니다. 이는 인공 지능(AI), 기계 학습(ML) 및 고성능 컴퓨팅(HPC) 사용 사례에 특히 유용합니다.
다음 다이어그램은 여러 개의 네트워크 인터페이스 카드(NIC)가 사용 중인 워커 노드에서 실행되는 멀티 호밍 포드를 보여줍니다.

배경
Amazon EC2에서 탄력적 네트워크 인터페이스는 VPC에서 가상 네트워크 카드를 나타내는 논리적 네트워킹 구성 요소입니다. 많은 EC2 인스턴스 유형의 경우 네트워크 인터페이스는 하드웨어에서 단일 네트워크 인터페이스 카드(NIC)를 공유합니다. 이 단일 NIC의 대역폭과 초당 패킷 속도는 최대입니다.
멀티 NIC 기능이 활성화된 경우 VPC CNI는 기본적으로 IP 주소를 대량으로 할당하지 않습니다. 대신 VPC CNI는 새 포드가 시작될 때 온디맨드 방식으로 각 네트워크 카드의 네트워크 인터페이스에 1개의 IP 주소를 할당합니다. 이 동작은 멀티 호밍 포드 사용으로 인해 증가하는 IP 주소 소진 속도를 줄입니다. VPC CNI는 온디맨드 방식으로 IP 주소를 할당하기 때문에 멀티 NIC 기능이 활성화된 인스턴스에서 포드를 시작하는 데 더 오랜 시간이 걸릴 수 있습니다.
고려 사항
-
Kubernetes 클러스터가 VPC CNI 버전
1.20.0
이상을 실행 중이어야 합니다. 멀티 NIC 기능은 VPC CNI 이상 버전에서만 사용할 수1.20.0
있습니다. -
VPC CNI 플러그인에서
ENABLE_MULTI_NIC
환경 변수를 활성화합니다. 다음 명령을 실행하여 변수를 설정하고 DaemonSet의 배포를 시작할 수 있습니다.-
kubectl set env daemonset aws-node -n kube-system ENABLE_MULTI_NIC=true
-
-
여러 개의 네트워크 인터페이스 카드(NIC)가 있는 워커 노드를 생성해야 합니다. 여러 개의 네트워크 인터페이스 카드가 있는 EC2 인스턴스 목록은 Amazon EC2 사용 설명서의 네트워크 카드를 참조하세요.
-
멀티 NIC 기능이 활성화된 경우 VPC CNI는 기본적으로 IP 주소를 대량으로 할당하지 않습니다. VPC CNI는 온디맨드 방식으로 IP 주소를 할당하기 때문에 멀티 NIC 기능이 활성화된 인스턴스에서 포드를 시작하는 데 더 오랜 시간이 걸릴 수 있습니다. 자세한 내용은 이전배경 섹션을 참조하세요.
-
멀티 NIC 기능이 활성화된 경우 포드에는 기본적으로 여러 개의 네트워크 인터페이스가 없습니다. 멀티 NIC를 사용하도록 각 워크로드를 구성해야 합니다. 여러 개의 네트워크 인터페이스가 있어야 하는 워크로드에
k8s.amazonaws.com/nicConfig: multi-nic-attachment
주석을 추가합니다.
IPv6
고려 사항
-
사용자 지정 IAM 정책 -
IPv6
클러스터의 경우 VPC CNI에 대해 다음 사용자 지정 IAM 정책을 생성하고 사용합니다. 이 정책은 멀티 NIC에만 해당됩니다.IPv6
클러스터에서 VPC CNI를 사용하는 방법에 대한 자세한 내용은 클러스터, 포드 및 서비스에 대한 IPv6 주소에 대해 알아보기 섹션을 참조하세요.{ "Version": "2012-10-17", "Statement": [ { "Sid": "AmazonEKSCNIPolicyIPv6MultiNIC", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:DescribeInstances", "ec2:AssignIpv6Addresses", "ec2:DetachNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTags", "ec2:ModifyNetworkInterfaceAttribute", "ec2:DeleteNetworkInterface", "ec2:DescribeInstanceTypes", "ec2:UnassignIpv6Addresses", "ec2:AttachNetworkInterface", "ec2:DescribeSubnets" ], "Resource": "*" }, { "Sid": "AmazonEKSCNIPolicyENITagIPv6MultiNIC", "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:network-interface/*" } ] }
-
IPv6
전환 메커니즘 사용 불가 - 멀티 NIC 기능을 사용하는 경우 VPC CNI는IPv6
클러스터의 포드에IPv4
주소를 할당하지 않습니다. 그렇지 않으면 VPC CNI는 포드가 다른 Amazon VPC 또는 인터넷의 외부IPv4
리소스와 통신할 수 있도록 각 포드에 호스트-로컬IPv4
주소를 할당합니다.
사용법
VPC CNI에서 멀티 NIC 기능이 활성화되고 aws-node
포드가 다시 시작된 후에는 각 워크로드를 멀티 호밍으로 구성할 수 있습니다. 필요한 주석이 포함된 YAML 구성 예시:
apiVersion: apps/v1 kind: Deployment metadata: name: orders-deployment namespace: ecommerce labels: app: orders spec: replicas: 3 selector: matchLabels: app: orders template: metadata: annotations: k8s.amazonaws.com/nicConfig: multi-nic-attachment labels: app: orders spec: ...
FAQ
1: 네트워크 인터페이스 카드(NIC)란 무엇인가요?
네트워크 카드라고도 하는 네트워크 인터페이스 카드(NIC)는 기본 클라우드 컴퓨팅 하드웨어에 대한 네트워크 연결을 활성화하는 물리적 디바이스입니다. 최신 EC2 서버에서는 Nitro 네트워크 카드를 의미합니다. 탄력적 네트워크 인터페이스(ENI)는 이 기본 네트워크 카드를 가상으로 표현한 것입니다.
일부 EC2 인스턴스 유형에는 대역폭 및 패킷 속도 성능을 높이기 위해 여러 개의 NIC가 있습니다. 이러한 인스턴스의 경우 추가 네트워크 카드에 보조 ENI를 할당할 수 있습니다. 예를 들어, ENI #1은 네트워크 카드 인덱스 0에 연결된 NIC의 인터페이스로 기능할 수 있는 반면, ENI #2는 별도의 네트워크 카드 인덱스에 연결된 NIC의 인터페이스로 기능할 수 있습니다.
2. 멀티 호밍 포드란 무엇인가요?
멀티 호밍 포드는 여러 네트워크 인터페이스(및 여러 IP 주소)를 사용하는 단일 Kubernetes 포드입니다. 각 포드 네트워크 인터페이스는 탄력적 네트워크 인터페이스(ENI)와 연결되고, 이러한 ENI는 기본 워커 노드에 있는 별도의 NIC를 논리적으로 표현한 것입니다. 네트워크 인터페이스가 여러 개인 멀티 호밍 포드에는 추가 데이터 전송 용량이 있어 데이터 전송 속도를 높입니다.
중요
VPC CNI는 인스턴스 유형에 여러 개의 NIC가 있는 멀티 호밍 포드만 구성할 수 있습니다.
3. 왜 이 기능을 사용해야 하나요?
Kubernetes 기반 워크로드에서 네트워크 성능을 조정해야 하는 경우 멀티 NIC 기능을 사용하여 ENA 디바이스가 연결된 모든 기본 NIC와 접속하는 멀티 호밍 포드를 실행할 수 있습니다. 추가 네트워크 카드를 활용하면 여러 동시 연결에 애플리케이션 트래픽을 분산하여 애플리케이션의 대역폭 용량과 패킷 속도 성능이 증가합니다. 이는 인공 지능(AI), 기계 학습(ML) 및 고성능 컴퓨팅(HPC) 사용 사례에 특히 유용합니다.
4. 이 기능은 어떻게 사용하나요?
-
먼저 Kubernetes 클러스터가 VPC CNI 버전 1.20 이상을 사용하는지 확인해야 합니다. VPC CNI를 EKS 추가 기능으로 업데이트하는 단계는 Amazon VPC CNI 업데이트(Amazon EKS 추가 기능) 섹션을 참조하세요.
-
그런 다음
ENABLE_MULTI_NIC
환경 변수를 사용하여 VPC CNI에서 멀티 NIC 지원을 활성화해야 합니다. -
그리고 여러 네트워크 카드가 있는 노드를 만들고 조인해야 합니다. 여러 개의 네트워크 카드가 있는 EC2 인스턴스 유형 목록은 Amazon EC2 사용 설명서의 네트워크 카드를 참조하세요.
-
마지막으로 여러 네트워크 인터페이스(멀티 호밍 포드)를 사용하거나 단일 네트워크 인터페이스를 사용하도록 각 워크로드를 구성합니다.
5. 지원되는 워커 노드에서 여러 개의 NIC를 사용하도록 워크로드를 구성하려면 어떻게 해야 하나요?
멀티 호밍 포드를 사용하려면 k8s.amazonaws.com/nicConfig: multi-nic-attachment
주석을 추가해야 합니다. 이렇게 하면 기본 인스턴스의 모든 NIC에서 포드로 ENI가 연결됩니다(포드와 NIC 사이에 일대다 매핑).
이 주석이 누락된 경우 VPC CNI는 포드에 네트워크 인터페이스가 1개만 필요하다고 가정하고 사용 가능한 NIC의 ENI에서 IP를 할당합니다.
6. 이 기능이 지원되는 네트워크 인터페이스 어댑터는 무엇인가요?
IP 트래픽용 기본 네트워크 카드에 ENA가 하나 이상 연결되어 있는 경우 모든 네트워크 인터페이스 어댑터를 사용할 수 있습니다. 자세한 내용은 Amazon EC2 사용 설명서의 Elastic Network Adapter(ENA)를 참조하세요.
지원되는 네트워크 디바이스 구성:
-
ENA 인터페이스는 VPC를 위한 IP 네트워킹을 지원하는 데 필요한 모든 기존 IP 네트워킹 및 라우팅 기능을 제공합니다. 자세한 내용은 EC2 인스턴스에서 ENA로 향상된 네트워킹 활성화를 참조하세요.
-
EFA(ENA 포함 EFA) 인터페이스는 IP 네트워킹을 위한 ENA 디바이스와 짧은 지연 시간, 높은 처리량 통신을 위한 EFA 디바이스를 모두 제공합니다.
중요
네트워크 카드에 EFA 전용 어댑터만 연결된 경우 VPC CNI는 멀티 호밍 포드에 대한 네트워크 연결을 프로비저닝할 때 이를 건너뜁니다. 하지만 EFA 전용 어댑터를 네트워크 카드의 ENA 어댑터와 결합하면 VPC CNI가 디바이스의 ENI도 관리합니다. EKS 클러스터에서 EFA 전용 인터페이스를 사용하려면 Elastic Fabric Adapter를 사용한 Amazon EKS에서 기계 학습 훈련 실행 섹션을 참조하세요.
7. 클러스터의 노드에 ENA 지원이 있는지 확인할 수 있나요?
예, AWS CLI 또는 EC2 API를 사용하여 클러스터의 EC2 인스턴스에 대한 네트워크 정보를 검색할 수 있습니다. 인스턴스에 ENA 지원이 있는지 여부에 대한 세부 정보가 제공됩니다. 다음 예시에서 <your-instance-id>
를 노드의 EC2 인스턴스 ID로 바꾸세요.
AWS CLI 예제:
aws ec2 describe-instances --instance-ids <your-instance-id> --query "Reservations[].Instances[].EnaSupport"
출력 예시:
[ true ]
8. 포드와 연결된 다른 IP 주소를 볼 수 있나요?
아니요, 쉽지 않습니다. 하지만 노드에서 nsenter
를 사용하여 ip route show
와 같은 일반적인 네트워크 도구를 실행하고 추가 IP 주소 및 인터페이스를 볼 수 있습니다.
9. 포드의 네트워크 인터페이스 수를 제어할 수 있나요?
아니요. 워크로드가 지원되는 인스턴스에서 여러 NIC를 사용하도록 구성된 경우 단일 포드는 인스턴스의 모든 네트워크 카드에서 자동으로 IP 주소를 보유합니다. 또는 싱글 호밍 포드에는 인스턴스의 NIC 하나에 네트워크 인터페이스 하나가 연결됩니다.
중요
EFA 전용 디바이스에 한하여 연결된 네트워크 카드는 VPC CNI에서 건너뛰게 됩니다.
10. 특정 NIC를 사용하도록 포드를 구성할 수 있나요?
아니요, 이 기능은 지원되지 않습니다. 포드에 관련 주석이 있는 경우 VPC CNI는 워커 노드의 ENA 어댑터에서 모든 NIC를 사용하도록 자동으로 구성합니다.
11. 이 기능은 다른 VPC CNI 네트워킹 기능과 함께 작동하나요?
예, VPC CNI의 멀티 NIC 기능은 사용자 지정 네트워킹과 향상된 서브넷 검색 모두에서 작동합니다. 하지만 멀티 호밍 포드는 사용자 지정 서브넷 또는 보안 그룹을 사용하지 않습니다. 대신 VPC CNI는 노드와 동일한 서브넷 및 보안 그룹 구성을 가진 멀티 호밍 포드에 IP 주소 및 네트워크 인터페이스를 할당합니다. 사용자 지정 네트워킹에 대한 자세한 내용은 사용자 지정 네트워킹을 통해 대체 서브넷에 포드 배포 섹션을 참조하세요.
VPC CNI의 멀티 NIC 기능은 작동하지 않으며 포드의 보안 그룹과 함께 사용할 수 없습니다.
12. 이 기능에서 네트워크 정책을 사용할 수 있나요?
예, 멀티 NIC에서 Kubernetes 네트워크 정책을 사용할 수 있습니다. Kubernetes 네트워크 정책은 포드에서 송수신되는 네트워크 트래픽을 제한합니다. VPC CNI에 네트워크 정책 적용에 대한 자세한 내용은 Kubernetes 네트워크 정책을 통해 pod 트래픽 제한 섹션을 참조하세요.
13. EKS Auto Mode에서 멀티 NIC 지원이 활성화되어 있나요?
EKS Auto Mode 클러스터에서는 멀티 NIC가 지원되지 않습니다.