EKS 및 IP 주소 탐색: 보조 CIDR 범위 및 전용 NAT 게이트웨이
EKS 및 IP 주소에 대한 요구
Kubernetes에서는 다양한 워크로드를 유사한 방식으로 실행할 수 있습니다.사용자의 측면에서 볼 때 한 노드에서 두 개의pod(각pod당 2개의 vCPU 소모)를 운행하는 것과 몇 십 개의pod(각pod당 0.05개의 vCPU 소모)를 운행하는 것은 별 차이가 없다.그러나 네트워크를 보면 큰 차이가 있다. 모든pod는 유일한 IP 주소가 필요하다.대부분의 Kubernetes 구현에는 CNI 플러그인이 있습니다. 그룹 내부의 IP 공간에서 모든pod에 IP 주소를 할당할 수 있습니다.
AWS가 관리하는 Kubernetes 제품인 EKS by default은 Amazon VPC CNI plugin for Kubernetes을 사용합니다.대부분의 네트워크와 달리 이것은 VPC(노드가 있는 네트워크)에서 각pod에 전용 IP 주소를 분배한다.
VPC CNI 플러그인 1의 역할은 다음과 같습니다.
2 ENIs * ips-per-ENI
을 성명한다는 것을 의미한다. 왜냐하면 최소한 하나의 수호 프로그램이 첫 번째 ENI의 IP 주소를 성명하기 때문이다.m5.xlarge
, 각 ENI에는 15개의 IP 주소가 있습니다.노드당 최소 30개의 IP 주소가 있어야 합니다./21
개의 VPC를 가지고 3개의 /23
개의 개인 서브넷을 제공한다.3 x 512 = 1536
개의 사용 가능한 IP 주소입니다./16
개의 전용 네트워크를 만드는 것은 무엇일까?이 가능하다, ~할 수 있다,...다중 독점 네트워크
많은 조직에서 독점 네트워크만 있는 것은 아니다.네트워크 환경은 다음과 같은 요소의 조합일 수 있습니다.
전용 네트워크 및 기타 네트워크에 many ways개 접속할 수 있습니다.독점 네트워크의 외부 라우팅이 필요한 CIDR 범위가 클수록 중첩 가능성이 커집니다.
따라서 비교적 큰 조직에서 개인 AWS 계정은 보통 한 VPC가 제공하고 CIDR의 범위가 상대적으로 작으며 비교적 큰 네트워크 계획에 적합하다."대량의 IP"를 유지하기 위해 AWS VPC can be configured with에는 보조 CIDR 범위가 있습니다.
이것은 IP 공간 문제를 해결했지만 그 자체로 루트 문제를 해결할 수 없다.두 번째 CIDR 시리즈는 전체 네트워크 환경에서 독점 네트워크 외부에서 라우팅하기 위해 고유해야 합니다.보조 CIDR의 워크로드가 VPC 내의 리소스에 연결되기만 하면 문제가 되지 않을 수 있지만 일반적으로 그렇지 않습니다.
최근 미국용접학회(AWS)는 맞춤형 네트워크와 함께 차급 CIDR 시리즈에서 라우팅 가능한 EKS 크레인을 촉진하는 Private NAT gateways을 출시했다.
독점 네트워크 설정
EKS를 실행하는 방법에 대해 설명하는 VPC 설정을 살펴보겠습니다.
기본적
기본적인 VPC는 CIDR 시리즈, 개인 및 공공 서브넷, NAT 게이트웨이, 인터넷 게이트웨이로 구성되어 있다.주요 CIDR 범위의 크기에 따라 충분할 수 있지만, 비교적 큰 조직 범위 내에서 비교적 작은 CIDR 범위를 가정해 봅시다.
보조 CIDR 시리즈
다음: 보조 CIDR 범위를 추가하고 보조 서브넷에 노드 및 POD를 배치합니다.전용 네트워크 이외의 전용 네트워크에 연결된 자원이 작업 부하에 영원히 필요하지 않다면, 이것은 작용할 수 있으며, 이것은 불가능하다.이론적으로 POD는 다른 VPC에 패키지를 보낼 수 있지만 되돌아오는 경로가 없다.
보조 CIDR 시리즈 + 맞춤형 네트워크
라우팅 문제를 해결하기 위해 VPC CNI 플러그인에서 사용자 정의 네트워크를 활성화할 수 있습니다.이것은 노드와 크레인을 서로 다른 서브넷에 놓을 수 있도록 허용한다.노드는 메인 사유 서브넷에 들어가고 크레인은 보조 사유 서브넷에 들어간다.기본적으로 외부 네트워크로의 데이터에 대해 CNI 플러그인은pods IP 주소를 노드의 주 IP 주소(SNAT)로 변환하기 때문에 루트 문제를 해결했다.이 설정에서 이러한 노드는 라우팅 가능한 서브넷에 있습니다.
AWS knowledge center과 Amazon EKS Workshop에는 보조 CIDR 범위 설정 및 사용자 정의 네트워크가 설명되어 있습니다.
소스 네트워크 주소 변환 is disabled when using security groups for pods 2:
Source NAT is disabled for outbound traffic from pods with assigned security groups so that outbound security group rules are applied. To access the internet, pods with assigned security groups must be launched on nodes that are deployed in a private subnet configured with a NAT gateway or instance. Pods with assigned security groups deployed to public subnets are not able to access the internet.
보조 cidr+ 전용 NAT 게이트웨이
사용자 지정 네트워크를 구성하는 것 외에 전용 NAT 게이트웨이를 사용하여 라우팅 문제를 해결할 수도 있습니다.공용 NAT 게이트웨이와 달리 전용 서브넷에 위치하며 인터넷 게이트웨이와 연결되지 않습니다.
이렇게 하면 노드와 POD는 보조 CIDR 범위 내에서 운행할 수 있고 루트 문제는 EKS 밖에서 해결할 수 있다.
경로 선택과 원가 제어
NAT 게이트웨이 하나면 충분합니다.
보조 사설 서브넷에 대해 설정할 수 있는 가장 기본적인 라우팅 테이블을 살펴보겠습니다.
10.150.40.0/21 local
100.64.0.0/16 local
0.0.0.0/0 nat-<private-id>
이것은 모든 비VPC 데이터를 메인 전용 서브넷에 넣고 거기에 설정된 루트표가 나머지 작업을 완성하도록 합니다.간단하지만 노드의 인터넷 연결을 테스트할 때 우리는 함정 3을 관찰할 수 있다.[ec2-user@ip-100-64-43-196 ~]$ ping www.google.com
PING www.google.com (74.125.193.147) 56(84) bytes of data.
64 bytes from ig-in-f147.1e100.net (74.125.193.147): icmp_seq=1 ttl=49 time=2.31 ms
^C
[ec2-user@ip-100-64-43-196 ~]$ tracepath -p 443 74.125.193.147
1?: [LOCALHOST] pmtu 9001
1: ip-10-150-42-36.eu-west-1.compute.internal 0.168ms
1: ip-10-150-42-36.eu-west-1.compute.internal 1.016ms
2: ip-10-150-40-116.eu-west-1.compute.internal 0.739ms
3: ip-10-150-40-1.eu-west-1.compute.internal 1.510ms pmtu 1500
3: no reply
^C
추적 및 기존 NAT 게이트웨이를 살펴보면 트래픽이 전용 및 NAT 게이트웨이를 통과하는 것을 확인할 수 있습니다.세심한 관찰자들은 유량도 속의 녹색선이 전용 NAT 스위치를 돌고 있다는 것을 이미 알아차렸을 것이다.이를 위해서는 전용 네트워크 트래픽을 전용 NAT 게이트웨이로 지정하여 라우팅 테이블을 조정하기만 하면 됩니다.
10.150.40.0/21 local
100.64.0.0/16 local
10.0.0.0/8 nat-<private-id>
0.0.0.0/0 nat-<public-id>
NAT 게이트웨이를 통과하는 트래픽을 절반으로 줄이는 것은 비용을 절반으로 줄이는 것이다(NAT 게이트웨이의 고정 비용은 무시).VPC 엔드포인트 및 피어 연결
위에서 설명한 바와 같이 VPC 단점과 대등한 연결을 복제하는 루트 테이블 항목(주요 개인 서브넷에 존재)은 불필요한 데이터가 개인 NAT 스위치를 통과하는 것을 피하기 위해 매우 중요하다.그것은 작용할 수 있지만 불필요한 원가를 가져올 수 있다.
알림: DNS, 루트, 보안 그룹인 행성을 정렬해야 하기 때문에, VPC에 존재하는 '인터페이스' 유형의 모든 VPC 단점에 보조 CIDR 범위 접근 권한을 부여하십시오.그렇지 않으면 DNS는 전용 NAT 게이트웨이를 통해 VPC 엔드포인트의 보안 그룹에 의해 차단되는 VPC 로컬 IP 주소를 반환합니다.
총결산
2단계 CIDR 범위 내에서 EKS POD를 실행할 때 전용 NAT 게이트웨이는 사용자 정의 네트워크를 대체할 수 있습니다.다음과 같은 몇 가지 균형을 고려해야 합니다.
이 블로그는 https://betterprogramming.pub/amazon-eks-is-eating-my-ips-e18ea057e045 ↩
면책 성명: 우리는 아직 POD를 위해 안전팀을 사용하지 않았기 때문에 이것은 이론적인 것이다.그러나 설명한 NAT 없음 = 인터넷 라우팅 없음 논리에 따라 외부 전용 네트워크에 비슷한 제한이 적용된다고 가정할 수 있습니다. ↩
NAT 게이트웨이를 더 많이 사용해야 하는 경우에는 큰 문제가 될 수 있으며 장애가 발생할 수 있습니다. ↩
Reference
이 문제에 관하여(EKS 및 IP 주소 탐색: 보조 CIDR 범위 및 전용 NAT 게이트웨이), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tbeijen/eks-and-the-quest-for-ip-addresses-secondary-cidr-ranges-and-private-nat-gateways-109o텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)