카테고리 없음

EKS ENI와 Max Pods란?

idea9329 2025. 1. 7. 22:21
반응형

 

AWS Elastic Kubernetes Service (EKS)에서 ENI (Elastic Network Interface) Max Pods는 클러스터에서 워커 노드가 처리할 수 있는 네트워크 리소스와 관련된 중요한 개념입니다. 이를 이해하려면 ENI와 Max Pods의 관계를 먼저 알아야 합니다.


1. ENI (Elastic Network Interface)

ENI는 AWS EC2 인스턴스의 네트워크 연결을 담당하는 가상 네트워크 어댑터입니다.

  • 하나의 EC2 인스턴스는 여러 ENI를 가질 수 있으며, 각 ENI에는 여러 IP 주소를 할당할 수 있습니다.
  • Kubernetes Pod는 ENI에서 제공되는 IP 주소를 사용하여 네트워크에 연결됩니다.

ENI가 중요한 이유:

  • Kubernetes에서는 각 Pod가 고유한 IP 주소를 가지므로 ENI의 IP 주소 용량이 Pod의 최대 수를 제한합니다.

2. Max Pods란?

Max Pods는 EKS 워커 노드에서 실행할 수 있는 최대 Pod 수를 의미합니다. 이는 노드가 사용할 수 있는 ENI와 IP 주소에 따라 결정됩니다.

Max Pods 계산 방식:

  1. EC2 인스턴스 유형에 따라 ENI 개수:
    EC2 인스턴스마다 지원하는 최대 ENI 개수가 다릅니다.
  2. ENI당 할당 가능한 IP 주소:
    ENI당 최대 IP 주소 수도 EC2 인스턴스 유형에 따라 다릅니다.
  3. Pod를 위한 사용 가능한 IP 주소:
    • 각 ENI에서 하나의 IP 주소는 호스트 노드가 사용합니다.
    • 나머지 IP 주소는 Pod에 할당됩니다.
  4. 최대 Pod 수 공식:
    Max Pods = (ENI 개수 × ENI당 IP 주소) - 1
    여기서 -1은 노드 자체에서 사용하는 IP 주소를 제외하기 위함입니다.

3. EC2 인스턴스 유형별 ENI 및 Max Pods 예시

다음은 일반적으로 사용되는 EC2 인스턴스 유형에서 ENI와 Max Pods 값을 보여줍니다:

EC2 인스턴스 유형ENI 개수ENI당 IP 주소Max Pods

t3.medium 3 6 17
m5.large 3 10 29
c5.2xlarge 4 15 58
r5.4xlarge 8 30 239

4. EKS에서 Max Pods 설정

노드 그룹 생성 시:

EKS는 워커 노드를 생성할 때 인스턴스 유형에 따라 Max Pods를 자동으로 설정합니다. 이 값은 --use-max-pods 옵션으로 관리됩니다.

Max Pods 확인:

노드의 kubelet 설정에서 --max-pods 값을 확인할 수 있습니다.

cat /etc/eks/eni-max-pods.txt

사용자 정의 Max Pods:

eksctl 또는 사용자 지정 Launch Template을 사용해 maxPods 값을 직접 설정할 수 있습니다.


5. 문제 발생 및 해결 방안

문제: Pod IP 부족

  • 클러스터에서 IP 주소가 부족하면 Pod이 스케줄링되지 않습니다.

해결 방안:

  1. EC2 인스턴스 유형 업그레이드:
    ENI와 IP 주소 제한이 더 높은 인스턴스로 변경.
  2. VPC CNI 플러그인 튜닝:
    Amazon VPC CNI 플러그인의 설정을 조정해 IP 주소를 효율적으로 할당.
  3. 탄력적 Pod CIDR 설정:
    Pod 네트워크 범위를 확장하여 더 많은 IP 주소를 사용할 수 있도록 설정.

6. 참고 링크

이 정보를 통해 EKS에서 ENI와 Max Pods 설정을 최적화하여 안정적인 클러스터 운영이 가능합니다.

반응형