VM에 쿠버네티스를 구축했을 때는 Calico를 사용, EKS에 구축 시에 Amazon VPC CNI를 사용했다.
[TerraForm] 기본적인 각 블록의 개념
data 블록Terraform에서 사용하는 data 블록은 특정 리소스에 대한 정보를 조회하는 데 사용됩니다. 당신이 언급한 두 가지 데이터 블록은 다음과 같은 역할을 합니다: data "aws_caller_ide
ysh94.tistory.com
상위 게시글에서 추가적인 내용을 다루기 위해 작성
Amazon VPC CNI (Container Network Interface) 플러그인은 **AWS EKS (Elastic Kubernetes Service)**에서 사용되는 네트워킹 플러그인으로, Kubernetes 클러스터 내의 Pod들이 Amazon VPC의 네트워크 리소스를 사용하여 통신할 수 있게 해주는 역할을 합니다. 이를 통해 Kubernetes 클러스터에서 실행되는 애플리케이션이 AWS VPC 네트워킹 기능을 활용할 수 있습니다.
Amazon VPC CNI의 주요 개념 및 기능:
1. Pod 네트워킹
Amazon VPC CNI는 Kubernetes 클러스터 내에서 실행되는 각 Pod가 직접 VPC 내의 네트워크에서 IP 주소를 할당받을 수 있도록 합니다. 이를 통해 Pod들은 VPC의 다른 리소스(예: EC2 인스턴스, RDS, Load Balancer 등)와 NAT 또는 별도의 네트워크 트랜슬레이션 없이 네이티브로 통신할 수 있습니다.
- Pod의 IP 주소: 각 Pod는 ENI(Elastic Network Interface)를 통해 IP 주소를 할당받고, 이 IP는 VPC의 서브넷 내에서 할당됩니다.
- 네트워크 투명성: Pod는 동일한 VPC의 다른 리소스와 동일한 네트워크 인터페이스를 사용하므로, 네트워크 성능이 향상되고 보안 그룹 및 네트워크 ACL을 적용할 수 있습니다.
2. Elastic Network Interface (ENI)
VPC CNI는 ENI를 사용하여 네트워크 인터페이스를 관리합니다. ENI는 AWS VPC의 네트워크 구성 요소로, 각 네트워크 인터페이스는 하나 이상의 IP 주소를 할당받아 사용할 수 있습니다.
- 기본 네트워크 인터페이스: 각 EC2 인스턴스(또는 EKS 노드)는 기본적으로 하나의 ENI를 가집니다.
- 추가 ENI: Pod가 추가될 때마다, VPC CNI는 추가 ENI를 생성하고 이를 통해 Pod에 IP 주소를 할당합니다. 노드가 수용할 수 있는 최대 Pod 수는 사용 가능한 ENI의 수와 그에 할당된 IP 주소의 수에 따라 결정됩니다.
ENI 및 IP 할당 규칙:
- 각 ENI는 여러 개의 IP 주소를 가질 수 있습니다.
- 인스턴스 타입에 따라 지원하는 ENI 및 IP 주소의 수는 다릅니다.
- 예: t3.medium 인스턴스는 3개의 ENI를 지원하며, 각 ENI는 최대 6개의 IP 주소를 가질 수 있습니다.
3. WARM IP 및 WARM ENI
Amazon VPC CNI는 ENI와 IP 주소를 동적으로 관리할 수 있도록 WARM IP 및 WARM ENI 개념을 도입했습니다.
- WARM IP Target: VPC CNI는 Pod에 IP 주소를 할당하기 전에 미리 IP 주소를 확보할 수 있습니다. 이를 통해 Pod가 추가될 때 IP 주소 할당 지연을 줄입니다.
- 예: WARM_IP_TARGET=3으로 설정하면, CNI는 항상 노드에 여유 IP 주소 3개를 미리 준비해 둡니다.
- WARM ENI Target: IP 주소 대신 ENI 단위로 네트워크 인터페이스를 미리 준비할 수 있습니다.
- 예: WARM_ENI_TARGET=1으로 설정하면, VPC CNI는 항상 여유로운 ENI 하나를 미리 생성하여 필요 시 즉시 사용할 수 있게 합니다.
4. IP 주소 관리
Amazon VPC CNI는 각 노드가 할당할 수 있는 IP 주소를 동적으로 관리합니다. 각 ENI는 여러 개의 IP 주소를 가질 수 있으며, 이는 인스턴스 타입에 따라 다릅니다. ENI와 IP 관리의 세부사항은 다음과 같습니다:
- 프라이빗 IP 주소: VPC CNI는 기본적으로 Pod에 프라이빗 IP 주소를 할당하며, 이는 VPC 내에서만 사용됩니다.
- WARM_PREFIX_TARGET: 이 설정을 사용하면 IP 주소를 개별적으로 할당하는 대신, IPv4 Prefix 블록 단위로 미리 할당받아 사용할 수 있습니다. 이는 대규모 클러스터에서 더 효율적으로 IP를 관리하는 방법입니다.
5. Security Group 관리
VPC CNI는 Pod 수준에서 Security Group을 적용할 수 있는 기능을 제공합니다. 이는 Kubernetes 네임스페이스 또는 서비스에 특정 보안 그룹을 할당하여 네트워크 접근을 제어하는 데 유용합니다.
- IAM 역할 및 정책: VPC CNI는 ENI 및 IP 할당을 자동으로 관리하기 위해 특정 IAM 권한을 필요로 합니다. 이를 통해 네트워크 인터페이스를 동적으로 생성하고 관리할 수 있습니다.
ENABLE_PREFIX_DELEGATION, WARM_PREFIX_TARGET
**ENABLE_PREFIX_DELEGATION**과 **WARM_PREFIX_TARGET**은 Amazon VPC CNI (Container Network Interface) 플러그인의 설정 중 일부로, IPv4 Prefix Delegation 기능과 관련된 옵션입니다. 이 기능은 AWS EKS 또는 EC2 인스턴스의 네트워킹에서 사용되는 IP 주소의 할당 방식을 개선하여 네트워크 리소스를 더 효율적으로 관리하는 데 도움을 줍니다. 각각의 설정을 자세히 살펴보면 다음과 같습니다:
1. ENABLE_PREFIX_DELEGATION
ENABLE_PREFIX_DELEGATION은 IPv4 Prefix Delegation 기능을 활성화하는 옵션입니다.
개념:
- Prefix Delegation은 AWS에서 EC2 인스턴스(또는 EKS의 노드)에 IP 주소를 하나씩 할당하는 대신, /28 프리픽스 블록 단위로 IP 주소를 할당하는 방식입니다.
- 기존에는 하나의 Pod 또는 ENI (Elastic Network Interface)에 하나의 IP 주소를 할당했지만, Prefix Delegation을 활성화하면, /28 프리픽스 블록으로 16개의 IP 주소를 한 번에 할당할 수 있습니다.
- 이 방식은 IP 주소를 더 빠르게 할당하고 관리할 수 있으며, ENI 스케일링을 줄여 네트워크 성능을 개선할 수 있습니다.
사용:
- ENABLE_PREFIX_DELEGATION을 true로 설정하면 Prefix Delegation이 활성화됩니다.
- 이 설정은 특히 대규모 클러스터에서 많은 수의 Pod가 IP 주소를 필요로 할 때 유용합니다.
장점:
- 빠른 IP 할당: IP 주소를 하나씩 할당하는 방식보다 빠르게 여러 IP를 관리할 수 있어, 많은 Pod를 사용하는 환경에서 네트워킹 성능을 향상시킵니다.
- ENI 소모 절감: ENI를 더 적게 사용하면서도 많은 수의 IP 주소를 할당할 수 있어 ENI 소모를 줄이고, 클러스터의 확장성을 높입니다.
설정 예시:
ENABLE_PREFIX_DELEGATION=true
2. WARM_PREFIX_TARGET
WARM_PREFIX_TARGET은 Prefix Delegation을 사용할 때, 미리 준비해둘 IP Prefix 블록의 수를 설정하는 옵션입니다.
개념:
- WARM_PREFIX_TARGET은 노드에 할당할 수 있는 IP 블록을 미리 준비해두는 개념입니다.
- "WARM IP 주소 개수" 설정과 유사하지만, IP Prefix 블록 단위로 관리되며, 미리 준비된 IP Prefix 블록의 수를 관리합니다.
- WARM_PREFIX_TARGET을 사용하면 각 노드에서 필요한 만큼의 IP 블록을 미리 할당받아, IP 할당 지연을 방지할 수 있습니다. 예를 들어, WARM_PREFIX_TARGET=1로 설정하면, 각 노드는 적어도 하나의 미사용 IP Prefix 블록을 항상 준비해 둡니다.
사용:
- WARM_PREFIX_TARGET 값이 클수록, 네트워크 요청이 발생할 때 IP Prefix 블록을 미리 준비해둔 상태에서 즉시 할당할 수 있어 더 빠른 응답이 가능합니다.
- 이 값이 너무 높으면 사용되지 않는 IP 블록이 증가하여 자원을 낭비할 수 있으며, 너무 낮으면 새로운 Pod가 생성될 때 IP 할당 지연이 발생할 수 있습니다.
설정 예시:
WARM_PREFIX_TARGET=1
요약
- ENABLE_PREFIX_DELEGATION: IPv4 Prefix Delegation 기능을 활성화하여, 각 노드가 ENI 단위로 하나씩 IP를 할당받는 대신 /28 IP 블록(16개의 IP 주소)을 할당받도록 하는 설정입니다.
- WARM_PREFIX_TARGET: 각 노드에서 미리 준비해둘 IP Prefix 블록의 수를 지정하는 설정으로, IP 할당의 지연을 방지하는 역할을 합니다.
이 두 옵션은 대규모 EKS 클러스터나 많은 Pod를 사용하는 환경에서 네트워크 성능을 최적화하고, 효율적인 IP 주소 할당을 돕습니다.
'Cloud' 카테고리의 다른 글
EBS 최적화 (EBS-Optimized) (0) | 2024.10.10 |
---|---|
AWS Spot Instances (1) | 2024.10.10 |
AWS CoreDNS (2) | 2024.10.10 |
[AWS] AWS CLI 설치 (0) | 2024.10.09 |
[VPC] 서브넷 로드밸런서 태그 (0) | 2024.09.20 |