클러스터, pods, 및 서비스에 대한 IPv6 주소에 대해 알아보기 - Amazon EKS

클러스터, pods, 및 서비스에 대한 IPv6 주소에 대해 알아보기

적용 대상: Amazon EC2 인스턴스의 Pods 및 Fargate Pods

기본적으로 Kubernetes는 Pods 및 services에 IPv4 주소를 할당합니다. Pods 및 services에 IPv4 주소를 할당하는 대신 IPv6 주소를 할당하도록 클러스터를 구성할 수 있습니다. Kubernetes가 1.23 버전 이상인 경우에도 Amazon EKS는 이중 스택 Pods 또는 services를 지원하지 않습니다. 결과적으로 Pods 및 services에 IPv4IPv6 주소를 모두 할당할 수 없습니다.

클러스터를 생성할 때 클러스터에 사용할 IP 패밀리를 선택합니다. 클러스터를 생성한 후에는 패밀리를 변경할 수 없습니다.

Amazon EKS IPv6 클러스터를 배포하기 위한 자습서는 Amazon EKS IPv6 클러스터 및 관리형 Amazon Linux 노드 배포을 참조하세요.

다음은 기능 사용 시 고려 사항입니다.

IPv6 기능 지원

  • Windows 지원되지 않음: Windows Pods 및 services는 지원되지 않습니다.

  • Nitro 기반 EC2 노드 필요: IPv6는 AWS Nitro 기반 Amazon EC2 또는 Fargate 노드에서만 사용할 수 있습니다.

  • 지원되는 EC2 및 Fargate 노드: Amazon EC2 노드 및 Fargate 노드에서 개별 pods에 보안 그룹 할당와 함께 IPv6를 사용할 수 있습니다.

  • Outposts가 지원되지 않음: AWS Outposts를 사용한 Amazon EKS 온프레미스 배포IPv6는 함께 사용할 수 없습니다.

  • Lustre용 FSx는 지원되지 않음:. FSx for Lustre를 사용한 고성능 앱 저장는 지원되지 않습니다.

  • 인스턴스 메타데이터 서비스가 지원되지 않음: Amazon EC2 인스턴스 메타데이터 서비스 IPv6 엔드포인트의 사용은 Amazon EKS에서 지원되지 않습니다.

  • 사용자 지정 네트워킹이 지원되지 않음: 이전에 사용자 지정 네트워킹을 통해 대체 서브넷에 pods 배포를 사용하여 IP 주소 고갈을 완화한 경우, 대신 IPv6를 사용할 수 있습니다. IPv6에서는 사용자 지정 네트워킹을 사용할 수 없습니다. 네트워크 격리를 위해 사용자 정의 네트워킹을 사용하는 경우 클러스터에 사용자 정의 네트워킹 및 IPv4 패밀리를 계속 사용해야 할 수 있습니다.

IP 주소 할당

  • Kubernetes 서비스: Kubernetes 서비스에는 IPv6 주소만 할당됩니다. IPv4 주소는 할당되지 않습니다.

  • 포드: 포드에는 IPv6 주소와 호스트-로컬 IPv4 주소가 할당됩니다. 호스트-로컬 IPv4 주소는 VPC CNI와 연결된 호스트-로컬 CNI 플러그인을 사용하여 할당되며 주소는 Kubernetes 컨트롤 플레인에 보고되지 않습니다. 포드가 다른 Amazon VPC 또는 인터넷의 외부 IPv4 리소스와 통신해야 하는 경우에만 사용됩니다. 호스트-로컬 IPv4 주소는 VPC CNI를 통해 워커 노드 기본 ENI의 기본 IPv4 주소에 SNAT 처리됩니다.

  • 포드 및 서비스: Pods와 services에는 IPv6 주소만 할당됩니다. IPv4 주소는 할당되지 않습니다. Pods는 인스턴스 자체의 NAT를 통해 IPv4 엔드포인트와 통신할 수 있으므로 DNS64 및 NAT64가 필요하지 않습니다. 트래픽에 퍼블릭 IP 주소가 필요한 경우 트래픽은 퍼블릭 IP로 변환된 소스 네트워크 주소입니다.

  • 라우팅 주소: Pod의 소스 IPv6 주소는 VPC 외부에서 통신할 때 노드의 IPv6 주소로 변환된 소스 네트워크 주소가 아닙니다. 인터넷 게이트웨이 또는 외부 전용 인터넷 게이트웨이를 사용하여 라우팅됩니다.

  • 노드: 모든 노드에 IPv4IPv6 주소가 할당됩니다.

  • Pods Fargate: 각 Fargate Pod는 배포된 서브넷에 대해 지정된 CIDR에서 IPv6 주소를 수신합니다. Fargate Pods를 실행하는 기본 하드웨어 장치는 하드웨어 장치가 배포된 서브넷에 할당된 CIDR에서 고유한 IPv4IPv6 주소를 가져옵니다.

EKS에서 IPv6를 사용하는 방법

  • 새 클러스트 생성: 새 클러스터를 생성하고 해당 클러스터에 IPv6 패밀리를 사용하도록 지정해야 합니다. 이전 버전에서 업데이트한 클러스터에 IPv6 패밀리를 사용 설정할 수 없습니다. 새 클러스터를 생성하는 방법에 대한 지침은 Considerations을 참조하세요.

  • 최신 VPC CNI 사용: Amazon VPC CNI 버전 1.10.1 이상을 배포합니다. 이 버전 이상은 기본적으로 배포됩니다. 추가 기능을 배포하면 클러스터의 모든 노드 그룹에 있는 모든 노드를 제거하지 않으면 1.10.1 이전 버전에 Amazon VPC CNI 추가 기능을 다운로드할 수 없습니다.

  • IPv6용 VPC CNI 구성: Amazon EC2 노드를 사용하는 경우 IP 접두사 위임 및 IPv6를 사용하여 Amazon VPC CNI 추가 기능을 구성해야 합니다. 클러스터를 생성할 때 IPv6 패밀리를 선택하면 1.10.1 버전의 추가 기능이 이 구성으로 기본 설정됩니다. 이는 자체 관리형 또는 Amazon EKS 추가 기능 모두에 해당됩니다. IP 접두사 위임에 대한 자세한 내용은 접두사를 사용하여 Amazon EKS 노드에 추가 IP 주소 할당 섹션을 참조하세요.

  • IPv4IPv6 주소를 구성:클러스터를 생성할 때 지정한 VPC 및 서브넷에는 지정한 VPC 및 서브넷에 할당된 IPv6 CIDR 블록이 있어야 합니다. 또한 할당된 IPv4 CIDR 블록도 있어야 합니다. IPv6만 사용하려는 경우에도 VPC가 작동하려면 IPv4 CIDR 블록이 필요하기 때문입니다. 자세한 내용은 Amazon VPC 사용 설명서의 IPv6 CIDR 블록을 VPC와 연결을 참조하세요.

  • 노드에 IPv6 주소 자동 할당: 노드를 생성할 때 IPv6 주소를 자동 할당하도록 구성된 서브넷을 지정해야 합니다. 그렇지 않으면 노드를 배포할 수 없습니다. 기본적으로 이 구성은 사용 중지되어 있습니다. 자세한 내용은 Amazon VPC 사용 설명서의 서브넷의 IPv6 주소 지정 속성 수정을 참조하세요.

  • IPv6를 사용할 라우트 테이블 설정:서브넷에 할당된 라우팅 테이블에는 IPv6 주소에 대한 경로가 있어야 합니다. 자세한 내용은 Amazon VPC 사용 설명서의 IPv6로 마이그레이션을 참조하세요.

  • IPv6에 대한 보안 그룹 설정: 보안 그룹은 IPv6 주소를 허용해야 합니다. 자세한 내용은 Amazon VPC 사용 설명서의 IPv6로 마이그레이션을 참조하세요.

  • 로드 밸런서를 설정: AWS 부하 분산 장치 컨트롤러 버전 2.3.1 이상을 사용하여 Application Load Balancer를 사용하여 애플리케이션 및 HTTP 트래픽 라우팅를 사용하는 HTTP 애플리케이션 또는 인스턴스 모드가 아닌 IP 모드의 부하 분산 장치로 Network Load Balancer를 사용하여 TCP 및 UDP 트래픽 라우팅에서 IPv6 Pods로 네트워크 트래픽을 로드 밸런싱하려면 두 부하 분산 장치 중 하나를 사용하세요. 자세한 내용은 AWS 로드 밸런서 컨트롤러를 통해 인터넷 트래픽 라우팅 단원을 참조하십시오.

  • IPv6 IAM 정책을 추가: IPv6 IAM 정책을 노드 IAM 또는 CNI IAM 역할에 연결해야 합니다. 두 가지 중 CNI IAM 역할에 연결하는 것이 좋습니다. 자세한 내용은 IPv6 패밀리를 사용하는 클러스터에 대한 IAM 정책 생성1단계 - Amazon VPC CNI plugin for Kubernetes IAM 역할 생성 단원을 참조하세요.

  • 모든 구성 요소 평가: AWS 클러스터를 배포하기 전에 통합하는 애플리케이션, Amazon EKS 애드온 및 IPv6 서비스에 대한 철저한 평가를 수행하세요. 이는 IPv6에서 모든 것이 예상대로 작동하는지 확인하기 위한 것입니다.

  • BootstrapArguments 자체 관리 노드 그룹 추가: IPv6 패밀리를 사용하는 클러스터에서 자체 관리형 노드 그룹을 생성하는 경우 사용자 데이터에는 노드 시작 시 실행되는 bootstrap.sh 파일에 대한 다음 BootstrapArguments가 포함되어야 합니다. your-cidr를 클러스터 VPC의 IPv6 CIDR 범위로 교체합니다.

    --ip-family ipv6 --service-ipv6-cidr your-cidr

    클러스터의 IPv6 CIDR 범위를 모르는 경우 다음 명령을 사용하여 확인할 수 있습니다(AWS CLI 버전 2.4.9 이상 필요).

    aws eks describe-cluster --name my-cluster --query cluster.kubernetesNetworkConfig.serviceIpv6Cidr --output text