클러스터, pods, 및 서비스에 대한 IPv6 주소에 대해 알아보기
적용 대상: Amazon EC2 인스턴스의 Pods 및 Fargate Pods
기본적으로 Kubernetes는 Pods 및 services에 IPv4
주소를 할당합니다. Pods 및 services에 IPv4
주소를 할당하는 대신 IPv6
주소를 할당하도록 클러스터를 구성할 수 있습니다. Kubernetes가 1.23
버전 이상인 경우에도 Amazon EKS는 이중 스택 Pods 또는 services를 지원하지 않습니다. 결과적으로 Pods 및 services에 IPv4
와 IPv6
주소를 모두 할당할 수 없습니다.
클러스터를 생성할 때 클러스터에 사용할 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
주소로 변환된 소스 네트워크 주소가 아닙니다. 인터넷 게이트웨이 또는 외부 전용 인터넷 게이트웨이를 사용하여 라우팅됩니다. -
노드: 모든 노드에
IPv4
및IPv6
주소가 할당됩니다. -
Pods Fargate: 각 Fargate Pod는 배포된 서브넷에 대해 지정된 CIDR에서
IPv6
주소를 수신합니다. Fargate Pods를 실행하는 기본 하드웨어 장치는 하드웨어 장치가 배포된 서브넷에 할당된 CIDR에서 고유한IPv4
및IPv6
주소를 가져옵니다.
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 주소 할당 섹션을 참조하세요. -
IPv4
및IPv6
주소를 구성:클러스터를 생성할 때 지정한 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