이 페이지 개선에 도움 주기
이 사용자 설명서에 기여하고 싶으신가요? 이 페이지 하단으로 스크롤하여 GitHub에서 이 페이지 편집을 선택하세요. 여러분의 기여는 모두를 위한 더 나은 사용자 설명서를 만드는 데 도움이 됩니다.
Amazon EC2 노드에 사용 가능한 IP 주소 증량
각 Amazon EC2 인스턴스는 최대 탄력적 네트워크 인터페이스 수와 각 네트워크 인터페이스에 할당할 수 있는 최대 IP 주소 수를 지원합니다. 각 노드에는 네트워크 인터페이스마다 IP 주소가 하나씩 필요합니다. 사용 가능한 다른 모든 IP 주소를 Pods
에 할당할 수 있습니다. 각 Pod
에는 자체 IP 주소가 필요합니다. 따라서 사용 가능한 컴퓨팅 및 메모리 리소스가 있지만 Pods
에 할당할 IP 주소가 부족하여 추가 Pods
를 수용할 수 없는 노드가 있을 수 있습니다.
이 주제에서는 노드에 개별 보조 IP 주소를 할당하는 대신 IP 접두사를 할당하여 노드가 Pods
에 할당할 수 있는 IP 주소 수를 크게 늘리는 방법을 알아봅니다. 각 접두사에는 여러 IP 주소가 포함됩니다. IP 접두사 할당을 위해 클러스터를 구성하지 않는 경우 클러스터는 Pod 연결에 필요한 네트워크 인터페이스와 IP 주소를 구성하기 위해 더 많은 Amazon EC2 애플리케이션 프로그래밍 인터페이스(API)를 호출해야 합니다. 클러스터가 더 큰 규모로 성장함에 따라 이러한 API 호출의 빈도가 증가하여 Pod 및 인스턴스 시작 시간이 더 길어질 수 있습니다. 이로 인해 규모가 크고 까다로운 워크로드의 수요를 충족하기 위해 확장이 지연되고 확장 요구 사항을 충족하기 위해 추가 클러스터와 VPC를 프로비저닝해야 하므로 비용 및 관리 오버헤드가 추가됩니다. 자세한 내용은 GitHub의 Kubernetes Scalability thresholds
고려 사항
-
각 Amazon EC2 인스턴스 유형은 최대 Pods 수를 지원합니다. 관리형 노드 그룹이 여러 인스턴스 유형으로 구성된 경우, 클러스터의 인스턴스에 대한 최대 Pods 수 가운데 최소 수가 클러스터의 모든 노드에 적용됩니다.
-
기본적으로 노드에서 실행할 수 있는 최대
Pods
수는 110개이지만 이 수를 변경할 수 있습니다. 숫자를 변경하고 기존 관리형 노드 그룹이 있는 경우 노드 그룹의 다음 AMI 또는 시작 템플릿 업데이트로 인해 새 노드에 변경된 값이 나타납니다. -
IP 주소 할당에서 IP 접두사 할당으로 전환할 때 기존 노드를 순차적으로 바꾸는 대신 새 노드 그룹을 생성하여 사용 가능한 IP 주소 수를 늘리는 것이 좋습니다. IP 주소와 접두사가 모두 할당된 노드에서 Pods를 실행하면 광고된 IP 주소 용량에 불일치가 발생하여 노드의 향후 워크로드에 영향을 줄 수 있습니다. 전환을 수행하는 권장 방법은 Amazon EKS 모범 사례 안내서의 Replace all nodes when migrating from Secondary IP mode to Prefix Delegation mode or vice versa
를 참조하세요. -
Linux 노드만 있는 클러스터의 경우
-
네트워크 인터페이스에 접두사를 할당하도록 추가 기능을 구성한 후에는 클러스터의 모든 노드 그룹에 있는 모든 노드를 제거하지 않으면
1.9.0
또는1.10.1
이전 버전에 Amazon VPC CNI plugin for Kubernetes 추가 기능을 다운로드할 수 없습니다. -
POD_SECURITY_GROUP_ENFORCING_MODE
=standard
및AWS_VPC_K8S_CNI_EXTERNALSNAT
=false
로 설정하고 Pods에 보안 그룹도 사용하는 경우 Pods가 VPC 외부의 엔드포인트와 통신할 때 Pods에 할당한 보안 그룹이 아닌 노드의 보안 그룹이 사용됩니다.POD_SECURITY_GROUP_ENFORCING_MODE
=strict
로 설정하고 Pods에 보안 그룹도 사용하는 경우Pods
가 VPC 외부의 엔드포인트와 통신할 때Pod's
보안 그룹이 사용됩니다.
-
필수 조건
-
기존 클러스터가 있어야 합니다. 배포하려면 Amazon EKS 클러스터 생성 부분을 참조하세요.
-
Amazon EKS 노드가 있는 서브넷에는 충분한 연속
/28
(IPv4
클러스터용) 또는/80
(IPv6
클러스터용) Classless Inter-Domain Routing(CIDR) 블록이 있어야 합니다.IPv6
클러스터에는 Linux 노드만 있을 수 있습니다. IP 주소가 서브넷 CIDR 전체에 분산되어 있는 경우 IP 접두사를 사용하지 못할 수 있습니다. 다음과 같이 하는 것이 좋습니다.-
서브넷 CIDR 예약을 사용하여 예약된 범위 내의 IP 주소가 아직 사용 중이더라도 릴리스 시 IP 주소가 다시 할당되지 않도록 합니다. 이렇게 하면 분할 없이 접두사를 할당할 수 있습니다.
-
IP 접두사가 할당된 워크로드 실행에 특별히 사용되는 새 서브넷을 사용합니다. IP 접두사를 할당할 때 Windows 및 Linux 워크로드를 모두 동일한 서브넷에서 실행할 수 있습니다.
-
-
노드에 IP 접두사를 할당하려면 노드가 AWS Nitro를 기반으로 해야 합니다. Nitro 기반이 아닌 인스턴스는 계속해서 개별 보조 IP 주소를 할당하지만 Nitro-based 인스턴스보다 Pods에 할당할 IP 주소 수가 상당히 적습니다.
-
Linux 노드만 있는 클러스터의 경우 – 클러스터가
IPv4
패밀리용으로 구성된 경우 버전1.9.0
이상의 Amazon VPC CNI plugin for Kubernetes 추가 기능이 설치되어 있어야 합니다. 현재 설치된 버전은 다음과 같은 명령으로 확인할 수 있습니다.kubectl describe daemonset aws-node --namespace kube-system | grep Image | cut -d "/" -f 2
클러스터가
IPv6
패밀리용으로 구성된 경우 버전1.10.1
의 추가 기능이 설치되어 있어야 합니다. 플러그인 버전이 필요한 버전보다 이전인 경우 업데이트해야 합니다. 자세한 내용은 Amazon VPC CNI plugin for Kubernetes Amazon EKS 추가 기능을 사용한 작업의 업데이트 부분을 참조하세요. -
Windows 노드만 있는 클러스터의 경우
-
클러스터와 해당 플랫폼 버전은 다음 표에 나와 있는 버전 이상이어야 합니다. 클러스터 버전을 업그레이드하려면 기존 클러스터를 새 Kubernetes 버전으로 업데이트 섹션을 참조하세요. 클러스터가 최소 플랫폼 버전이 아닌 경우 Amazon EKS가 플랫폼 버전을 업데이트할 때까지 노드에 IP 접두사를 할당할 수 없습니다.
Kubernetes 버전 플랫폼 버전 1.27
eks.3
1.26
eks.4
1.25
eks.5
aws eks describe-cluster --name
명령에서my-cluster
--query 'cluster.{"Kubernetes Version": version, "Platform Version": platformVersion}'
를 클러스터 이름으로 바꾼 다음 수정된 명령을 실행하여 현재 Kubernetes 및 플랫폼 버전을 확인할 수 있습니다.my-cluster
-
클러스터에 대해 Windows 지원이 활성화되었습니다. 자세한 내용은 EKS 클러스터에 Windows 노드 배포 단원을 참조하십시오.
-
Amazon EC2 노드에 사용 가능한 IP 주소의 증량하려면
-
노드에 IP 주소 접두사를 할당하도록 클러스터를 구성합니다. 해당 노드의 운영 체제와 일치하는 탭에서 절차를 완료합니다.
-
노드가 배포되면 클러스터의 노드를 확인합니다.
kubectl get nodes
예제 출력은 다음과 같습니다.
NAME STATUS ROLES AGE VERSION ip-
192-168-22-103
.region-code
.compute.internal Ready <none>19m
v1.XX.X-eks-6b7464
ip-192-168-97-94
.region-code
.compute.internal Ready <none>19m
v1.XX.X-eks-6b7464
-
노드 중 하나를 설명하여 노드에 대한
max-pods
값과 사용 가능한 IP 주소 수를 결정합니다.
을 이전 출력에서 반환된 노드 중 하나의 이름에 있는192.168.30.193
IPv4
주소로 바꿉니다.kubectl describe node ip-
192-168-30-193
.region-code
.compute.internal | grep 'pods\|PrivateIPv4Address'예제 출력은 다음과 같습니다.
pods:
110
vpc.amazonaws.com/PrivateIPv4Address:144
이전 출력에서
110
은144
개의 IP 주소를 사용할 수 있더라도 Kubernetes가 노드에 배포할 최대 Pods 수입니다.