기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
컨테이너화된 환경은 애플리케이션 현대화 덕분에 빠른 속도로 확장되고 있습니다. 즉, 점점 더 많은 작업자 노드와 포드가 배포되고 있습니다.
Amazon VPC CNI 플러그인은 각 포드에 VPC의 CIDR(들)의 IP 주소를 할당합니다. 이 접근 방식은 VPC 흐름 로그 및 기타 모니터링 솔루션과 같은 도구를 사용하여 포드 주소를 완벽하게 파악할 수 있습니다. 워크로드 유형에 따라 포드에서 많은 수의 IP 주소를 사용할 수 있습니다.
AWS 네트워킹 아키텍처를 설계할 때는 VPC 및 노드 수준에서 Amazon EKS IP 소비를 최적화하는 것이 중요합니다. 이렇게 하면 IP 소진 문제를 완화하고 노드당 포드 밀도를 높일 수 있습니다.
이 섹션에서는 이러한 목표를 달성하는 데 도움이 되는 기술에 대해 설명합니다.
노드 수준 IP 소비 최적화
접두사 위임은 Amazon Virtual Private Cloud Amazon EC2 VPC)의 기능입니다. IPv4 IPv6 네트워크 인터페이스(ENI)당 IP 주소를 늘려 노드당 포드 밀도를 높이고 컴퓨팅 효율성을 개선합니다. 접두사 위임은 사용자 지정 네트워킹에서도 지원됩니다.
자세한 내용은 Linux 노드를 사용한 접두사 위임 및 Windows 노드를 사용한 접두사 위임 섹션을 참조하세요.
IP 소진 완화
클러스터가 사용 가능한 모든 IP 주소를 사용하지 않도록 하려면 확장을 염두에 두고 VPCs와 서브넷의 크기를 조정하는 것이 좋습니다.
IPv6를 채택하는 것은 처음부터 이러한 문제를 방지하는 좋은 방법입니다. 그러나 확장성 요구 사항이 초기 계획을 초과하고 IPv6를 채택할 수 없는 조직의 경우 IP 주소 소진에 대한 권장 대응은 VPC 설계를 개선하는 것입니다. Amazon EKS 고객 사이에서 가장 일반적으로 사용되는 기법은 라우팅할 수 없는 보조 CIDRs VPC에 추가하고 포드에 IP 주소를 할당할 때이 추가 IP 공간을 사용하도록 VPC CNI를 구성하는 것입니다. 이를 일반적으로 사용자 지정 네트워킹이라고 합니다.
노드에 할당된 IPs의 웜 풀을 최적화하는 데 사용할 수 있는 Amazon VPC CNI의 변수를 다룹니다. Amazon EKS에는 내장되어 있지 않지만 IP 소진을 완화하는 데 도움이 될 수 있는 다른 아키텍처 패턴으로이 섹션을 닫습니다.
IPv6 사용(권장)
IPv6 채택은 RFC1918 제한 사항을 해결하는 가장 쉬운 방법입니다. 네트워크 아키텍처를 선택할 때 IPv6를 첫 번째 옵션으로 채택하는 것이 좋습니다. IPv6는 훨씬 더 큰 총 IP 주소 공간을 제공하며, 클러스터 관리자는 IPv4 제한을 해결하기 위해 노력하지 않고 애플리케이션을 마이그레이션하고 확장하는 데 집중할 수 있습니다.
Amazon EKS 클러스터는 IPv4와 IPv6를 모두 지원합니다. 기본적으로 EKS 클러스터는 IPv4 주소 공간을 사용합니다. 클러스터 생성 시 IPv6 기반 주소 공간을 지정하면 IPv6를 사용할 수 있습니다. IPv6 EKS 클러스터에서 포드 및 서비스는 레거시 IPv4 엔드포인트가 IPv6 클러스터에서 실행되는 서비스에 연결하는 기능을 유지하면서 IPv6 주소를 수신하고 그 반대의 경우도 마찬가지입니다IPv4. 클러스터 내의 모든 pod-to-pod 통신은 항상 IPv6를 통해 이루어집니다. VPC(/56) 내에서 IPv6 서브넷의 IPv6 CIDR 블록 크기는 /64로 고정됩니다. 이렇게 하면가 EKS에서 배포를 확장할 수 있는 2^64(약 185억) IPv6 주소가 제공됩니다.
자세한 내용은 IPv6 EKS 클러스터 실행 섹션을 참조하고 실습 경험은 IPv6로 실습 시작하기 워크숍의 Amazon EKS에서 IPv6 이해

IPv4 클러스터에서 IP 소비 최적화
이 섹션은 레거시 애플리케이션을 실행 중이거나 IPv6로 마이그레이션할 준비가 되지 않은 고객을 대상으로 합니다. 모든 조직이 가능한 한 빨리 IPv6로 마이그레이션하는 것이 좋지만, 일부 조직에서는 IPv4를 사용하여 컨테이너 워크로드를 확장하기 위해 대체 접근 방식을 찾아야 할 수도 있습니다. 이러한 이유로 Amazon EKS 클러스터를 사용하여 IPv4(RFC1918) 주소 공간 소비를 최적화하는 아키텍처 패턴도 안내합니다.
성장 계획
IP 소진에 대한 첫 번째 방어선으로 클러스터가 사용 가능한 모든 IP 주소를 소비하지 않도록 IPv4 VPCs 및 서브넷의 크기를 늘리는 것이 좋습니다. 서브넷에 사용 가능한 IP 주소가 충분하지 않으면 새 포드 또는 노드를 생성할 수 없습니다.
VPC와 서브넷을 구축하기 전에 필요한 워크로드 규모에서 역방향으로 작업하는 것이 좋습니다. 예를 들어, eksctl
중요
VPCs 및 서브넷의 크기를 조정할 때 로드 밸런서, RDS 데이터베이스 및 기타 인 VPC 서비스와 같이 IP 주소를 사용할 수 있는 여러 요소(포드 및 노드 제외)가 있을 수 있습니다.
또한 Amazon EKS는 컨트롤 플레인과의 통신을 허용하는 데 필요한 최대 4개의 탄력적 네트워크 인터페이스(X-ENI)를 생성할 수 있습니다(자세한 내용은 여기를 참조). 클러스터 업그레이드 중에 Amazon EKS는 새 X-ENIs를 생성하고 업그레이드가 성공하면 이전 X-ENI를 삭제합니다. 따라서 EKS 클러스터와 연결된 서브넷의 경우 넷마스크가 /28(IP 주소 16개) 이상인 것이 좋습니다.
샘플 EKS 서브넷 계산기
사용자 지정 네트워킹
RFC1918 IP 공간을 소진하려는 경우 사용자 지정 네트워킹 패턴을 사용하여 전용 추가 서브넷 내에서 포드를 예약하여 라우팅 가능한 IPs를 절약할 수 있습니다. 사용자 지정 네트워킹은 보조 CIDR 범위에 대해 유효한 VPC 범위를 허용하지만 CG-NAT 스페이스의 CIDRs(/16)100.64.0.0/10
을 사용하는 것이 좋습니다. 즉, RFC1918 범위보다 기업 환경에서 사용할 가능성이 낮기 198.19.0.0/16
때문입니다.
자세한 내용은 사용자 지정 네트워킹 전용 섹션을 참조하세요.

향상된 서브넷 검색
향상된 서브넷 검색은 Amazon VPC CNI에서 검색할 수 있도록 새 서브넷에 태그를 지정하여 IP 소진을 위한 간소화된 네트워크 구성 대안을 제공합니다. 향상된 서브넷 검색을 사용하면 현재 워크로드가 동일한 서브넷에서 계속 실행될 수 있으며 Amazon Elastic Kubernetes Service(Amazon EKS)는 이제 새로운 "사용 가능한 서브넷(들)"에서 추가 포드를 예약할 수 있습니다.
클러스터의 현재 서브넷에 IP 주소가 부족한 경우 다음과 같이 Amazon EKS 클러스터에 서브넷을 추가할 수 있습니다.
-
새 CIDR 블록을 VPC에 연결합니다.
-
새 CIDR 블록에서 새 서브넷을 생성하고 "kubernetes.io/role/cni = "1"로 태그를 지정합니다.
-
"true"에 대한 Amazon VPC CNI 추가 기능의 ENABLE_SUBNET_DISCOVERY 구성을 활성화합니다(버전 1.18.0 이후 기본값).
VPC 및 Amazon EKS 클러스터에서 향상된 서브넷 검색이 활성화되면 다음 다이어그램에 설명된 대로 새 탄력적 네트워크 인터페이스(ENIs)가 Amazon EKS 노드에 연결됩니다.

자세한 내용은 AWS 컨테이너 블로그에서 Amazon VPC CNI의 향상된 서브넷 검색 도입
IPs웜 풀 최적화
기본 구성을 사용하면 VPC CNI가 전체 ENI(및 연결된 IPs)를 웜 풀에 유지합니다. 이는 특히 더 큰 인스턴스 유형에서 많은 수의 IPs 소비할 수 있습니다.
클러스터 서브넷에 사용 가능한 IP 주소 수가 제한되어 있는 경우 다음 VPC CNI 구성 환경 변수를 검사합니다.
-
WARM_IP_TARGET
-
MINIMUM_IP_TARGET
-
WARM_ENI_TARGET
노드에서 실행할 것으로 예상되는 포드 수와 MINIMUM_IP_TARGET
거의 일치하도록 값을 구성할 수 있습니다. 이렇게 하면 포드가 생성될 때 CNI가 EC2 API를 호출하지 않고 웜 풀에서 IP 주소를 할당할 수 있습니다.
값을 WARM_IP_TARGET
너무 낮게 설정하면 EC2 API에 대한 추가 호출이 발생하고 요청 제한이 발생할 수 있습니다. 대규모 클러스터의 경우 요청 제한을 방지하기 MINIMUM_IP_TARGET
위해와 함께를 사용합니다.
이러한 옵션을 구성하려면 aws-k8s-cni.yaml
매니페스트를 다운로드하고 환경 변수를 설정할 수 있습니다. 작성 시 최신 릴리스가 여기에
주의
이러한 설정은 CNI를 업데이트할 때 기본값으로 재설정됩니다. CNI를 업데이트하기 전에 CNI를 백업하십시오. 구성 설정을 검토하여 업데이트에 성공한 후 다시 적용해야 하는지 확인합니다.
기존 애플리케이션의 가동 중지 없이 CNI 파라미터를 즉시 조정할 수 있지만 확장성 요구 사항을 지원하는 값을 선택해야 합니다. 예를 들어 배치 워크로드를 사용하는 경우 포드 규모 요구 사항에 맞게 기본값을 업데이트WARM_ENI_TARGET
하는 것이 좋습니다. 를 높은 값으로 설정WARM_ENI_TARGET
하면 항상 대규모 배치 워크로드를 실행하는 데 필요한 웜 IP 풀이 유지되므로 데이터 처리 지연이 방지됩니다.
주의
IP 주소 소진에 대한 권장 응답은 VPC 설계를 개선하는 것입니다. IPv6 및 보조 CIDRs 같은 솔루션을 고려합니다. 이러한 값을 조정하여 웜 IPs 수를 최소화하는 것은 다른 옵션이 제외된 후의 임시 해결책이어야 합니다. 이러한 값을 잘못 구성하면 클러스터 작업에 방해가 될 수 있습니다. 프로덕션 시스템을 변경하기 전에 이 페이지의
IP 주소 인벤토리 모니터링
위에서 설명한 솔루션 외에도 IP 사용률을 파악하는 것도 중요합니다. CNI 지표 헬퍼를 사용하여 서브넷의 IP 주소 인벤토리를
-
클러스터가 지원할 수 있는 최대 ENIs 수
-
이미 할당된 ENIs 수
-
포드에 현재 할당된 IP 주소 수
-
사용 가능한 총 및 최대 IP 주소 수
서브넷에 IP 주소가 부족할 경우 알림을 받도록 CloudWatch 경보를 설정할 수도 있습니다.
주의
VPC CNI의 DISABLE_METRICS
변수가 false로 설정되어 있는지 확인합니다.
추가 고려 사항
IP 소진에 도움이 될 수 있는 Amazon EKS에 내장되지 않은 다른 아키텍처 패턴이 있습니다. 예를 들어 VPCs 간 통신을 최적화하거나 여러 계정 간에 VPC를 공유하여 IPv4 주소 할당을 제한할 수 있습니다.
다음 패턴에 대해 자세히 알아보세요.