기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
IPv6 모드의 EKS는 대규모 EKS 클러스터에서 흔히 나타나는 IPv4 소진 문제를 해결합니다. IPv6에 대한 EKS의 지원은 IPv4 주소 공간의 제한된 크기로 인한 IPv4 소진 문제를 해결하는 데 중점을 둡니다. 이는 많은 고객이 제기한 중요한 문제이며 Kubernetes IPv4/IPv6 듀얼 스택
IPv6 EKS 클러스터에서 포드 및 서비스는 레거시 IPv4 엔드포인트와의 호환성을 유지하면서 IPv6 주소를 수신합니다. IPv4 여기에는 외부 IPv4 엔드포인트가 클러스터 내 서비스에 액세스하는 기능과 포드가 외부 IPv4 엔드포인트에 액세스하는 기능이 포함됩니다.
Amazon EKS IPv6 지원은 네이티브 VPC IPv6 기능을 활용합니다. 각 VPC에는 IPv4 주소 접두사(CIDR 블록 크기는 /16~/28일 수 있음)와 Amazon의 GUA(글로벌 유니캐스트 주소) 내의 고유한 /56 IPv6 주소 접두사(고정)가 할당됩니다. VPC의 각 서브넷에 /64 주소 접두사를 할당할 수 있습니다. 라우팅 테이블, 네트워크 액세스 제어 목록, 피어링 및 DNS 확인과 같은 IPv4 기능은 IPv6 지원 VPC에서 동일한 방식으로 작동합니다. 그런 다음 VPC를 듀얼 스택 VPC라고 하며, 이중 스택 서브넷 다음에 EKS/IPV4IPv6IPv6 VPC 파운데이션 패턴을 보여주는 다이어그램입니다.

IPv6 세계에서는 모든 주소가 인터넷 라우팅이 가능합니다. 기본적으로 VPC는 퍼블릭 GUA 범위에서 IPv6 CIDR을 할당합니다. 그러나 2024년 8월부터
다음 다이어그램은 EKS/IPv6 클러스터 내의 포드 IPv6 인터넷 송신 흐름을 보여줍니다.IPv6

IPv6 서브넷 구현 모범 사례는 VPC 사용 설명서에서 확인할 수 있습니다.
IPv6 EKS 클러스터에서 노드와 포드는 퍼블릭 IPv6 주소를 수신합니다. EKS는 고유 로컬 IPv6 유니캐스트 주소(ULA)를 기반으로 서비스에 IPv6 주소를 할당합니다. IPv6 클러스터의 ULA 서비스 CIDR은 클러스터 생성 단계에서 자동으로 할당되며 IPv4와 달리 지정할 수 없습니다. 다음 다이어그램은 EKS/IPv6 기반 클러스터 컨트롤 플레인 데이터 계획 기반 패턴을 보여줍니다.

개요
EKS/IPv6는 접두사 모드(VPC-CNI 플러그인 ENI IP 할당 모드)에서만 지원됩니다. 접두사 모드에 대해 자세히 알아봅니다.
접두사 할당은 Nitro 기반 EC2 인스턴스에서만 작동하므로 EKS/IPv6는 클러스터 데이터 플레인이 EC2 Nitro 기반 인스턴스를 사용하는 경우에만 지원됩니다.
간단히 말해서 IPv6 접두사가 /80(작업자 노드당)이면 ~10^14 IPv6 주소가 생성되며, 제한 계수는 더 이상 IPs가 아니라 포드 밀도(리소스별)입니다.
IPv6 접두사 할당은 EKS 작업자 노드 부트스트랩 시간에만 발생합니다. 이 동작은 프라이빗 IPv4 주소를 적시에 할당하려는 VPC CNI 플러그인(ipamd)에서 생성된 제한된 API 호출로 인해 포드 일정에서 높은 포드 이탈 EKS/IPv4 클러스터가 지연되는 경우가 많은 시나리오를 완화하는 것으로 알려져 있습니다. IPv4 또한 VPC-CNI 플러그인 고급 노브가 WARM_IP/ENI, MINIMUM_IP
다음 다이어그램은 IPv6 작업자 노드 탄력적 네트워크 인터페이스(ENI)를 확대합니다.

모든 EKS 작업자 노드에는 해당 DNS 항목과 함께 IPv4 및 IPv6 주소가 할당됩니다. 지정된 작업자 노드의 경우 듀얼 스택 서브넷의 단일 IPv4 주소만 사용됩니다. IPv6에 대한 EKS 지원을 사용하면 의견이 많은 외부 전용 IPv4 모델을 통해 IPv4 엔드포인트(AWS, 온프레미스, 인터넷)와 통신할 수 있습니다. EKS는 호스트-로컬 CNI 플러그인을 구현합니다.이 플러그인은 포드에 대한 IPv4 주소를 할당하고 구성하는 VPC CNI 플러그인의 보조입니다. CNI 플러그인은 169.254.172.0/22 범위의 포드에 대해 라우팅할 수 없는 호스트별 IPv4 주소를 구성합니다. 포드에 할당된 IPv4 주소는 워커 노드에 고유하며 워커 노드를 넘어 알리지 않습니다. 169.254.172.0/22는 대규모 인스턴스 유형을 지원할 수 있는 최대 1,024개의 고유한 IPv4 주소를 제공합니다.
다음 다이어그램은 클러스터 경계 외부의 IPv4 엔드포인트(비인터넷)에 연결하는 IPv6 포드의 흐름을 보여줍니다. IPv4

위의 다이어그램에서 포드는 엔드포인트에 대한 DNS 조회를 수행하며, IPv4 "A" 응답을 수신하면 포드의 노드 전용 고유 IPv4 주소가 소스 네트워크 주소 변환(SNAT)을 통해 EC2 작업자 노드에 연결된 기본 네트워크 인터페이스의 프라이빗 IPv4(VPC) 주소로 변환됩니다.
또한 EKS/IPv6 포드는 유사한 흐름이 존재하도록 하려면 퍼블릭 IPv4 주소를 사용하여 인터넷을 통해 IPv4 엔드포인트에 연결해야 합니다. 다음 다이어그램은 클러스터 경계 외부의 IPv4 엔드포인트에 연결하는 IPv6 포드의 흐름을 보여줍니다(인터넷 라우팅 가능). IPv4

위의 다이어그램에서 포드는 엔드포인트에 대한 DNS 조회를 수행하며, IPv4 "A" 응답을 수신하면 포드의 노드 전용 고유 IPv4 주소가 소스 네트워크 주소 변환(SNAT)을 통해 EC2 작업자 노드에 연결된 기본 네트워크 인터페이스의 프라이빗 IPv4(VPC) 주소로 변환됩니다. 그런 다음 포드 IPv4 주소(소스 IPv4: EC2 기본 IP)가 IPv4 NAT 게이트웨이로 라우팅되어 EC2 기본 IP가 유효한 인터넷 라우팅 가능 IPv4 퍼블릭 IP 주소(NAT 게이트웨이 할당 퍼블릭 IP)로 변환됩니다.
노드 간 Pod-to-Pod 통신은 항상 IPv6 주소를 사용합니다. VPC CNI는 IPv4 연결을 차단하면서 IPv6를 처리하도록 iptable을 구성합니다. IPv4
Kubernetes 서비스는 고유 로컬 IPv6 유니캐스트 주소(ULA)로부터 IPv6 주소(ClusterIP)만 수신합니다. IPv6

서비스는 AWS 로드 밸런서를 사용하여 인터넷에 노출됩니다. 로드 밸런서는 퍼블릭 IPv4 및 IPv6 주소, 즉 듀얼 스택 로드 밸런서를 수신합니다. IPv6 클러스터 kubernetes 서비스에 액세스하는 IPvIPv4 클라이언트의 경우 로드 밸런서는 IPv4에서 IPv6로의 변환을 수행합니다.
Amazon EKS는 프라이빗 서브넷에서 작업자 노드와 포드를 실행할 것을 권장합니다. 프라이빗 서브넷에 있는 노드에서 실행되는 포드에 트래픽을 로드 밸런싱하는 퍼블릭 서브넷에서 퍼블릭 로드 밸런서를 생성할 수 있습니다. 다음 다이어그램은 EKS/IPv6 수신 기반 서비스에 액세스하는 인터넷 IPv4 사용자를 보여줍니다.

참고
위의 패턴은가 AWS 로드 밸런서 컨트롤러의 최신 버전을
EKS 제어 플레인 데이터 플레인 통신
EKS는 이중 스택 모드(IPv4/IPv6)에서 교차 계정 ENIs(X-ENIs)를 프로비저닝합니다. kubelet 및 kube-proxy와 같은 Kubernetes 노드 구성 요소는 듀얼 스택을 지원하도록 구성됩니다. Kubelet 및 kube-proxy는 hostNetwork 모드에서 실행되며 노드의 기본 네트워크 인터페이스에 연결된 IPv4 및 IPv6 주소 모두에 바인딩됩니다. Kubernetes API 서버는 IPv6 기반 X-ENIs를 통해 포드 및 노드 구성 요소와 통신합니다. 포드는 X-ENIs를 통해 API-서버와 통신하고 포드와 API-서버 간 통신은 항상 IPv6 모드를 사용합니다.

추천
컴퓨팅 리소스 기반 일정
단일 IPv6 접두사는 단일 노드에서 많은 포드를 실행하기에 충분합니다. 이렇게 하면 노드의 최대 포드 수에 대한 ENI 및 IP 제한도 효과적으로 제거됩니다. IPv6는 max-Pods에 대한 직접적인 종속성을 제거하지만 m5.large와 같은 작은 인스턴스 유형의 접두사 연결을 사용하는 경우 IP 주소를 소진하기 훨씬 전에 인스턴스의 CPU 및 메모리 리소스를 소진할 가능성이 높습니다. 자체 관리형 노드 그룹 또는 사용자 지정 AMI ID가 있는 관리형 노드 그룹을 사용하는 경우 EKS 권장 최대 포드 값을 수동으로 설정해야 합니다.
다음 공식을 사용하여 IPv6 EKS 클러스터의 노드에 배포할 수 있는 최대 포드 수를 결정할 수 있습니다.
((Number of network interfaces for instance type (number of prefixes per network interface-1)* 16) + 2
((3 ENIs)_((10 secondary IPs per ENI-1)_ 16)) + 2 = 460 (real)
관리형 노드 그룹은 자동으로 최대 포드 수를 계산합니다. 리소스 제한으로 인한 포드 예약 실패를 방지하려면 최대 포드 수에 대한 EKS의 권장 값을 변경하지 마세요.
기존 사용자 지정 네트워킹의 목적 평가
사용자 지정 네트워킹
EKS/IPv6 클러스터의 Fargate 포드
EKS는 Fargate에서 실행되는 포드에 대해 IPv6를 지원합니다. Fargate에서 실행되는 포드는 VPC CIDR 범위(IPv4IPv6)에서 조각된 IPv6 및 VPC 라우팅 가능 프라이빗 IPv4 주소를 사용합니다.IPv4IPv6 간단히 말해서 EKS/Fargate 포드 클러스터의 밀도는 사용 가능한 IPv4 및 IPv6 주소로 제한됩니다. 향후 성장을 위해 듀얼 스택 서브넷/VPC CIDRs 것이 좋습니다. 기본 서브넷에 사용 가능한 IPv6 주소와 관계없이 사용 가능한 IPv4 주소가 없는 경우 새 Fargate 포드를 예약할 IPv6 수 없습니다.
AWS Load Balancer Controller(LBC) 배포
업스트림 인트리 Kubernetes 서비스 컨트롤러는 IPv6를 지원하지 않습니다. 최신 버전의"alb.ingress.kubernetes.io/ip-address-type: dualstack"
합니다. "alb.ingress.kubernetes.io/target-type: ip"
AWS Network Load Balancer는 듀얼 스택 UDP 프로토콜 주소 유형을 지원하지 않습니다. 짧은 지연 시간, 실시간 스트리밍, 온라인 게임 및 IoT에 대한 강력한 요구 사항이 있는 경우 IPv4 클러스터를 실행하는 것이 좋습니다. UDP 서비스의 상태 확인 관리에 대한 자세한 내용은 “UTP 트래픽을 Kubernetes로 라우팅하는 방법”