

 **이 페이지 개선에 도움 주기** 

이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 **GitHub에서 이 페이지 편집** 링크를 선택합니다.

# 포드에 여러 네트워크 인터페이스 연결
<a name="pod-multiple-network-interfaces"></a>

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

다음 다이어그램은 여러 개의 네트워크 인터페이스 카드(NIC)가 사용 중인 워커 노드에서 실행되는 멀티 호밍 포드를 보여줍니다.

![\[네트워크 인터페이스 2개가 ENA가 있는 네트워크 인터페이스 1개와 ENA 및 EFA가 있는 네트워크 인터페이스 1개가 연결된 멀티 호밍 포드\]](http://docs.aws.amazon.com/ko_kr/eks/latest/userguide/images/multi-homed-pod.png)


## 배경
<a name="pod-multi-nic-background"></a>

Amazon EC2에서 *탄력적 네트워크 인터페이스*는 VPC에서 가상 네트워크 카드를 나타내는 논리적 네트워킹 구성 요소입니다. 많은 EC2 인스턴스 유형의 경우 네트워크 인터페이스는 하드웨어에서 단일 네트워크 인터페이스 카드(NIC)를 공유합니다. 이 단일 NIC의 대역폭과 초당 패킷 속도는 최대입니다.

멀티 NIC 기능이 활성화된 경우 VPC CNI는 기본적으로 IP 주소를 대량으로 할당하지 않습니다. 대신 VPC CNI는 새 포드가 시작될 때 온디맨드 방식으로 각 네트워크 카드의 네트워크 인터페이스에 1개의 IP 주소를 할당합니다. 이 동작은 멀티 호밍 포드 사용으로 인해 증가하는 IP 주소 소진 속도를 줄입니다. VPC CNI는 온디맨드 방식으로 IP 주소를 할당하기 때문에 멀티 NIC 기능이 활성화된 인스턴스에서 포드를 시작하는 데 더 오랜 시간이 걸릴 수 있습니다.

## 고려 사항
<a name="pod-multi-nic-considerations"></a>
+ 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 사용 설명서**의 [네트워크 카드](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#network-cards)를 참조하세요.
+ 멀티 NIC 기능이 활성화된 경우 VPC CNI는 기본적으로 IP 주소를 대량으로 할당하지 않습니다. VPC CNI는 온디맨드 방식으로 IP 주소를 할당하기 때문에 멀티 NIC 기능이 활성화된 인스턴스에서 포드를 시작하는 데 더 오랜 시간이 걸릴 수 있습니다. 자세한 내용은 이전[배경](#pod-multi-nic-background) 섹션을 참조하세요.
+ 멀티 NIC 기능이 활성화된 경우 포드에는 기본적으로 여러 개의 네트워크 인터페이스가 없습니다. 멀티 NIC를 사용하도록 각 워크로드를 구성해야 합니다. 여러 개의 네트워크 인터페이스가 있어야 하는 워크로드에 `k8s.amazonaws.com/nicConfig: multi-nic-attachment` 주석을 추가합니다.

### `IPv6` 고려 사항
<a name="pod-multi-nic-considerations-ipv6"></a>
+  **사용자 지정 IAM 정책** - `IPv6` 클러스터의 경우 VPC CNI에 대해 다음 사용자 지정 IAM 정책을 생성하고 사용합니다. 이 정책은 멀티 NIC에만 해당됩니다. `IPv6` 클러스터에서 VPC CNI를 사용하는 방법에 대한 자세한 내용은 [클러스터, 포드 및 서비스에 대한 IPv6 주소에 대해 알아보기](cni-ipv6.md) 섹션을 참조하세요.

  ```
  {
      "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` 주소를 할당합니다.

## 사용법
<a name="pod-multi-NIC-usage"></a>

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
<a name="pod-muti-nic-faqs"></a>

### **1: 네트워크 인터페이스 카드(NIC)란 무엇인가요?**
<a name="pod-muti-nic-faqs-nic"></a>

네트워크 카드라고도 하는 네트워크 인터페이스 카드(NIC)는 기본 클라우드 컴퓨팅 하드웨어에 대한 네트워크 연결을 활성화하는 물리적 디바이스입니다. 최신 EC2 서버에서는 Nitro 네트워크 카드를 의미합니다. 탄력적 네트워크 인터페이스(ENI)는 이 기본 네트워크 카드를 가상으로 표현한 것입니다.

일부 EC2 인스턴스 유형에는 대역폭 및 패킷 속도 성능을 높이기 위해 여러 개의 NIC가 있습니다. 이러한 인스턴스의 경우 추가 네트워크 카드에 보조 ENI를 할당할 수 있습니다. 예를 들어, ENI \$11은 네트워크 카드 인덱스 0에 연결된 NIC의 인터페이스로 기능할 수 있는 반면, ENI \$12는 별도의 네트워크 카드 인덱스에 연결된 NIC의 인터페이스로 기능할 수 있습니다.

### **2. 멀티 호밍 포드란 무엇인가요?**
<a name="pod-muti-nic-faqs-pod"></a>

멀티 호밍 포드는 여러 네트워크 인터페이스(및 여러 IP 주소)를 사용하는 단일 Kubernetes 포드입니다. 각 포드 네트워크 인터페이스는 [탄력적 네트워크 인터페이스(ENI)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html)와 연결되고, 이러한 ENI는 기본 워커 노드에 있는 별도의 NIC를 논리적으로 표현한 것입니다. 네트워크 인터페이스가 여러 개인 멀티 호밍 포드에는 추가 데이터 전송 용량이 있어 데이터 전송 속도를 높입니다.

**중요**  
VPC CNI는 인스턴스 유형에 여러 개의 NIC가 있는 멀티 호밍 포드만 구성할 수 있습니다.

### **3. 왜 이 기능을 사용해야 하나요?**
<a name="pod-muti-nic-faqs-why"></a>

Kubernetes 기반 워크로드에서 네트워크 성능을 조정해야 하는 경우 멀티 NIC 기능을 사용하여 ENA 디바이스가 연결된 모든 기본 NIC와 접속하는 멀티 호밍 포드를 실행할 수 있습니다. 추가 네트워크 카드를 활용하면 여러 동시 연결에 애플리케이션 트래픽을 분산하여 애플리케이션의 대역폭 용량과 패킷 속도 성능이 증가합니다. 이는 인공 지능(AI), 기계 학습(ML) 및 고성능 컴퓨팅(HPC) 사용 사례에 특히 유용합니다.

### **4. 이 기능은 어떻게 사용하나요?**
<a name="pod-muti-nic-faqs-how-to-enable"></a>

1. 먼저 Kubernetes 클러스터가 VPC CNI 버전 1.20 이상을 사용하는지 확인해야 합니다. VPC CNI를 EKS 추가 기능으로 업데이트하는 단계는 [Amazon VPC CNI 업데이트(Amazon EKS 추가 기능)](vpc-add-on-update.md) 섹션을 참조하세요.

1. 그런 다음 `ENABLE_MULTI_NIC` 환경 변수를 사용하여 VPC CNI에서 멀티 NIC 지원을 활성화해야 합니다.

1. 그리고 여러 네트워크 카드가 있는 노드를 만들고 조인해야 합니다. 여러 개의 네트워크 카드가 있는 EC2 인스턴스 유형 목록은 *Amazon EC2 사용 설명서*의 [네트워크 카드](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#network-cards)를 참조하세요.

1. 마지막으로 여러 네트워크 인터페이스(멀티 호밍 포드)를 사용하거나 단일 네트워크 인터페이스를 사용하도록 각 워크로드를 구성합니다.

### **5. 지원되는 워커 노드에서 여러 개의 NIC를 사용하도록 워크로드를 구성하려면 어떻게 해야 하나요?**
<a name="pod-muti-nic-faqs-how-to-workloads"></a>

멀티 호밍 포드를 사용하려면 `k8s.amazonaws.com/nicConfig: multi-nic-attachment` 주석을 추가해야 합니다. 이렇게 하면 기본 인스턴스의 모든 NIC에서 포드로 ENI가 연결됩니다(포드와 NIC 사이에 일대다 매핑).

이 주석이 누락된 경우 VPC CNI는 포드에 네트워크 인터페이스가 1개만 필요하다고 가정하고 사용 가능한 NIC의 ENI에서 IP를 할당합니다.

### **6. 이 기능이 지원되는 네트워크 인터페이스 어댑터는 무엇인가요?**
<a name="pod-muti-nic-faqs-adapters"></a>

IP 트래픽용 기본 네트워크 카드에 ENA가 하나 이상 연결되어 있는 경우 모든 네트워크 인터페이스 어댑터를 사용할 수 있습니다. 자세한 내용은 *Amazon EC2 사용 설명서*의 [Elastic Network Adapter(ENA)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html)를 참조하세요.

지원되는 네트워크 디바이스 구성:
+  **ENA** 인터페이스는 VPC를 위한 IP 네트워킹을 지원하는 데 필요한 모든 기존 IP 네트워킹 및 라우팅 기능을 제공합니다. 자세한 내용은 [EC2 인스턴스에서 ENA로 향상된 네트워킹 활성화](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html)를 참조하세요.
+  **EFA**(**ENA 포함** **EFA**) 인터페이스는 IP 네트워킹을 위한 ENA 디바이스와 짧은 지연 시간, 높은 처리량 통신을 위한 EFA 디바이스를 모두 제공합니다.

**중요**  
네트워크 카드에 **EFA 전용** 어댑터만 연결된 경우 VPC CNI는 멀티 호밍 포드에 대한 네트워크 연결을 프로비저닝할 때 이를 건너뜁니다. 하지만 **EFA 전용** 어댑터를 네트워크 카드의 **ENA** 어댑터와 결합하면 VPC CNI가 디바이스의 ENI도 관리합니다. EKS 클러스터에서 EFA 전용 인터페이스를 사용하려면 [Elastic Fabric Adapter를 사용한 Amazon EKS에서 기계 학습 훈련 실행](node-efa.md) 섹션을 참조하세요.

### **7. 클러스터의 노드에 ENA 지원이 있는지 확인할 수 있나요?**
<a name="pod-muti-nic-faqs-node-ena"></a>

예, 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 주소를 볼 수 있나요?**
<a name="pod-muti-nic-faqs-list-ips"></a>

아니요, 쉽지 않습니다. 하지만 노드에서 `nsenter`를 사용하여 `ip route show`와 같은 일반적인 네트워크 도구를 실행하고 추가 IP 주소 및 인터페이스를 볼 수 있습니다.

### **9. 포드의 네트워크 인터페이스 수를 제어할 수 있나요?**
<a name="pod-muti-nic-faqs-number-of-enis"></a>

아니요. 워크로드가 지원되는 인스턴스에서 여러 NIC를 사용하도록 구성된 경우 단일 포드는 인스턴스의 모든 네트워크 카드에서 자동으로 IP 주소를 보유합니다. 또는 싱글 호밍 포드에는 인스턴스의 NIC 하나에 네트워크 인터페이스 하나가 연결됩니다.

**중요**  
**EFA 전용** 디바이스에 *한하여* 연결된 네트워크 카드는 VPC CNI에서 건너뛰게 됩니다.

### **10. 특정 NIC를 사용하도록 포드를 구성할 수 있나요?**
<a name="pod-muti-nic-faqs-specify-nic"></a>

아니요, 이 기능은 지원되지 않습니다. 포드에 관련 주석이 있는 경우 VPC CNI는 워커 노드의 ENA 어댑터에서 모든 NIC를 사용하도록 자동으로 구성합니다.

### **11. 이 기능은 다른 VPC CNI 네트워킹 기능과 함께 작동하나요?**
<a name="pod-muti-nic-faqs-modes"></a>

예, VPC CNI의 멀티 NIC 기능은 *사용자 지정 네트워킹*과 *향상된 서브넷 검색* 모두에서 작동합니다. 하지만 멀티 호밍 포드는 사용자 지정 서브넷 또는 보안 그룹을 사용하지 않습니다. 대신 VPC CNI는 노드와 동일한 서브넷 및 보안 그룹 구성을 가진 멀티 호밍 포드에 IP 주소 및 네트워크 인터페이스를 할당합니다. 사용자 지정 네트워킹에 대한 자세한 내용은 [사용자 지정 네트워킹을 통해 대체 서브넷에 포드 배포](cni-custom-network.md) 섹션을 참조하세요.

VPC CNI의 멀티 NIC 기능은 작동하지 않으며 *포드의 보안 그룹*과 함께 사용할 수 없습니다.

### **12. 이 기능에서 네트워크 정책을 사용할 수 있나요?**
<a name="pod-muti-nic-faqs-netpol"></a>

예, 멀티 NIC에서 Kubernetes 네트워크 정책을 사용할 수 있습니다. Kubernetes 네트워크 정책은 포드에서 송수신되는 네트워크 트래픽을 제한합니다. VPC CNI에 네트워크 정책 적용에 대한 자세한 내용은 [Kubernetes 네트워크 정책을 통해 pod 트래픽 제한](cni-network-policy.md) 섹션을 참조하세요.

### **13. EKS Auto Mode에서 멀티 NIC 지원이 활성화되어 있나요?**
<a name="pod-muti-nic-faqs-auto-mode"></a>

EKS Auto Mode 클러스터에서는 멀티 NIC가 지원되지 않습니다.