이 페이지에서는 Google Kubernetes Engine(GKE)의 VPC 기반 클러스터에 대한 일반적인 내용을 간략하게 설명합니다.
이 페이지는 조직의 네트워크를 설계하는 클라우드 설계자 및 네트워킹 전문가를 대상으로 합니다. Google Cloud 콘텐츠에서 참조하는 일반적인 역할과 예시 태스크에 대한 자세한 내용은 일반 GKE Enterprise 사용자 역할 및 태스크를 참조하세요.
개요
GKE에서는 한 포드에서 다른 포드로 트래픽을 라우팅하는 방법에 따라 클러스터를 구분할 수 있습니다.
별칭 IP 주소 범위를 사용하는 클러스터를 VPC 기반 클러스터라고 부릅니다.
VPC 네트워크의 커스텀 정적 경로를 사용하는 클러스터를 경로 기반 클러스터라고 합니다.
조직의 네트워크 설계자, 네트워크 관리자 또는 네트워크 아키텍처 정의, 구현 및 유지보수를 담당하는 다른 네트워크 엔지니어 팀과 함께 클러스터 구성을 계획하고 설계합니다.
VPC 기반 클러스터의 이점
VPC 기반 클러스터에는 다음과 같은 여러 가지 이점이 있습니다.
포드 IP 주소는 기본적으로 연결된 클러스터의 VPC 네트워크와 기타 VPC 네트워크 내에서 VPC 네트워크 피어링을 통해 라우팅됩니다.
포드 IP 주소는 클러스터에서 포드가 생성되기 전에 VPC 네트워크에서 예약되어 있습니다. 이를 통해 VPC 네트워크의 다른 리소스와의 충돌을 방지하고 IP 주소 할당을 보다 효율적으로 계획할 수 있습니다.
포드 IP 주소 범위는 커스텀 정적 경로에 의존하지 않으며, 시스템 생성 및 커스텀 정적 경로 할당량을 소비하지 않습니다. 대신 자동 생성된 서브넷 경로가 VPC 기반 클러스터의 라우팅을 처리합니다.
클러스터 노드의 IP 주소 대신 포드 IP 주소 범위에만 적용되는 방화벽 규칙을 만들 수 있습니다.
일반적으로 포드 IP 주소 범위와 서브넷 보조 IP 주소 범위는 Cloud Router를 사용하여 Cloud VPN 또는 Cloud Interconnect와 연결된 온프레미스 네트워크에서 액세스할 수 있습니다.
네트워크 엔드포인트 그룹(NEG)과 같은 일부 기능은 VPC 기반 클러스터에서만 작동합니다.
기본 클러스터 네트워크 모드
VPC 네이티브는 GKE 버전 1.21.0-gke.1500 이상의 모든 클러스터에 대한 기본 네트워크 모드입니다. 이전 버전의 경우 기본 클러스터 네트워크 모드는 클러스터를 만드는 방법에 따라 달라집니다.
다음 표에서는 GKE 클러스터 버전 및 클러스터 만들기 방법에 대한 기본 클러스터 네트워크 모드를 보여줍니다.
GKE 버전 | 클러스터 생성 방법 | 클러스터 네트워크 모드 |
---|---|---|
모든 버전 | Google Cloud 콘솔 | VPC 네이티브 |
1.21.0-gke.1500 이상 | Kubernetes Engine API 또는 Google Cloud CLI | VPC 네이티브 |
또한 클러스터를 만들 때 --no-enable-ip-alias
플래그를 지정하여 경로 기반 클러스터를 만들 수 있습니다.
VPC 기반 클러스터의 IP 주소 범위
VPC 기반 클러스터를 만들 때 VPC 네트워크에 서브넷을 지정합니다. 클러스터는 다음 서브넷 IP 주소 범위를 사용합니다.
IPv4 주소 할당
VPC 기반 클러스터는 다음과 같이 지정된 서브넷 내의 고유 범위를 사용하여 노드, 포드, 서비스에 대해 IPv4 주소를 할당합니다.
노드 IP 주소: 클러스터는 서브넷의 기본 IPv4 주소 범위를 활용하여 모든 노드에 IP 주소를 할당합니다.
포드 IP 주소: 클러스터는 클러스터 내 모든 포드 IPv4 주소의 서브넷 내에 있는 보조 IPv4 주소 범위를 활용합니다. 유연성 향상을 위해 연속되지 않은 멀티 포드 CIDR을 구성하여 서브넷 보조 IPv4 주소 범위를 추가로 사용할 수 있습니다.
서비스 IP 주소: 클러스터는 모든 서비스(클러스터 IP) 주소에 대해 별도의 보조 IP 주소 범위를 사용합니다. 여러 클러스터가 동일한 서비스 IPv4 범위를 공유하도록 사용 설정하는 방법에 대한 자세한 내용은 GKE 클러스터 간 IP 주소 범위 공유를 참조하세요.
IPv6 주소 할당(이중 스택 네트워킹)
- 노드 및 포드 IPv6 주소: 이중 스택 네트워킹에 대해 사용 설정된 클러스터에서 노드의 IPv6 주소 및 모든 포드 IPv6 주소는 해당 노드의 지정된
/96
IPv6 주소 범위에서 시작됩니다. 노드 IP 주소 자체는 이 범위 내의 첫 번째/128
(단일 IPv6 주소)입니다. 자세한 내용은 이중 스택 네트워킹을 참조하세요.
다음 표에서는 노드, 포드, 서비스의 IP 주소 범위를 요약해서 보여줍니다.
범위 | 설명 | 예 |
---|---|---|
노드 |
노드 IP 주소는 클러스터와 연결된 서브넷의 기본 IP 주소 범위에서 할당됩니다. 포드의 노드 IP 주소와 서브넷의 보조 IP 주소 범위 크기 모두 클러스터에서 지원할 수 있는 노드 수를 제한합니다. 자세한 내용은 노드 제한 범위를 참조하세요. |
900 노드 클러스터를 만들려는 경우 클러스터 서브넷의 기본 IP 주소 범위는 최소한 자세한 내용은 서브넷 기본 IP 주소 범위 및 포드의 서브넷 보조 IP 주소 범위를 참조하세요. |
포드 |
포드 IP 주소는 포드의 클러스터 서브넷 보조 IP 주소 범위에서 가져와 집니다. 노드당 최대 포드 수를 다르게 설정하지 않으면 GKE는 |
노드당 포드를 최대 110개까지 지원하는 900 노드 클러스터의 경우 포드에서는 IP 주소가 900 × 256 = 230,400개 필요합니다. 각 노드에는 넷마스크의 크기가 /24인 별칭 IP 범위가 할당됩니다. 이 클러스터에는 포드의 보조 IP 범위에서 서브넷 마스크가 /14 이하인 서브넷이 필요합니다. 이 보조 IP 범위는 포드에 IP 주소를 2(32-14) = 218 = 262,144개 제공합니다. 자세한 내용은 포드의 서브넷 보조 IP 주소 범위를 참조하세요. |
서비스 |
서비스의 클러스터 서브넷 보조 IP 주소 범위에서 서비스(클러스터 IP) 주소를 가져옵니다. 이 범위는 클러스터에 호스팅하는 모든 Kubernetes 서비스의 주소를 제공할 만큼 충분히 커야 합니다. 버전 1.27 이상이 실행되는 GKE Autopilot 클러스터와 버전 1.29 이상이 실행되는 GKE Standard 클러스터에서 GKE는 기본적으로 GKE 관리 범위( |
서비스를 최대 3,000개까지 실행하는 클러스터의 경우 클러스터 IP 주소 3,000개가 필요합니다. 보조 범위 크기는 /20 이상이어야 합니다. /20 IP 주소 범위에는 IP 주소가 2(32-20) = 212 = 4,096개 있습니다. 자세한 내용은 서비스의 서브넷 보조 IP 주소 범위를 참조하세요. |
내부 IP 주소
VPC 기반 클러스터의 서브넷에 사용하는 IP 주소는 서브넷 범위가 유효해야 합니다. 유효한 범위에는 비공개 IP 주소(RFC 1918 및 기타 주소)와 비공개로 재사용되는 공개 IP 주소가 포함됩니다. 유효한 서브넷 범위에 대한 자세한 내용은 VPC 문서의 유효한 범위 및 제한된 범위를 참조하세요.
이러한 범위 사용 설정에 대한 안내는 비RFC 1918 비공개 IP 주소 범위 사용을 참조하세요.
이러한 범위를 사용하는 방법에 대한 안내는 비공개로 사용되는 공개 IP 주소 범위 사용 설정을 참조하세요.
보조 범위 할당 방법
포드 IP 주소 범위와 서비스(ClusterIP
) 주소 범위를 VPC 기반 클러스터에 할당할 수 있습니다. 이러한 IP 주소 범위는 GKE 또는 사용자 관리로 관리할 수 있습니다.
보조 범위 할당 방법을 이해하려면 다음 핵심 용어를 이해해야 합니다.
할당: IP 주소 범위 할당은 특정 서브넷 범위를 VPC 기반 클러스터에 할당하는 프로세스를 의미합니다. 이렇게 하면 포드 및 서비스와 같이 해당 구성요소가 클러스터 내에서 사용할 수 있는 IP 주소 풀이 설정됩니다.
관리: IP 주소 범위를 관리하는 것은 클러스터, 노드 풀 또는 포드 레벨에서 진행 중인 CRUD 작업(생성, 업데이트, 삭제, 읽기)으로, VPC 기반 클러스터 내에서 할당된 서브넷 범위 및 리소스 할당과 관련된 것입니다.
GKE 관리 보조 범위(기본값)
버전 1.27 이상이 실행되는 GKE Autopilot 클러스터와 버전 1.29 이상이 실행되는 GKE Standard 클러스터에서 GKE는 기본적으로 GKE 관리형 범위(34.118.224.0/20
)의 서비스에 IP 주소를 할당합니다. 이렇게 하면 서비스에 자체 IP 주소 범위를 지정할 필요가 없습니다. 다음 고려사항이 적용됩니다.
- 선택적으로
--services-ipv4-cidr
플래그를 사용하여 서비스의 커스텀 범위를 지정할 수 있습니다. --services-ipv4-cidr
플래그(예:/22
)를 사용하여 범위 size만 지정하는 경우에도 GKE에서 GKE 관리형 범위를 사용하여 주소의 하위 범위를 가져옵니다.- GKE에서는 GKE 관리형 범위가 사용될 때 서비스에 별도의 보조 IP 주소 범위를 만들지 않습니다.
사용자 관리
IP 주소 할당을 완전히 제어하려면 VPC 기반 클러스터의 서브넷을 수동으로 관리하면 됩니다.
서브넷의 보조 IP 주소 범위를 만든 후 이 범위를 사용하는 클러스터를 만들 수 있습니다. 클러스터를 만드는 동안 포드와 서비스의 서브넷 범위 이름을 지정합니다. 보조 범위를 수동으로 만들 경우에는 직접 관리해야 합니다.
연속되지 않은 다중 포드 CIDR을 사용하지 않고 만들 수 있는 최소 IP 주소 범위는 /28이지만 이 범위에서는 포드가 최대 8개인 노드 1개만 만들 수 있습니다. 필요한 최대 노드 수에 맞게 충분히 큰 범위를 사용해야 합니다.
사용 가능한 최소 범위는 또한 노드당 최대 포드 수에 따라 다릅니다.
노드당 최대 포드 값에 대해 최소 사용 가능한 CIDR 범위는 IP 주소 할당 최적화의 표를 참조하세요.
포드의 IP 주소 범위가 소진되면 다음 중 하나를 수행해야 합니다.
- 더 큰 포드 IP 주소 범위를 사용하여 새 클러스터 만들기
- 노드 풀의
--max-pods-per-node
를 줄인 후 노드 풀을 다시 만들기 - 연속되지 않은 다중 포드 CIDR을 사용하여 보조 포드 IP 주소 범위 확장
경로 기반 클러스터와의 차이점
포드와 서비스(ClusterIP) 주소의 할당 방식은 경로 기반 클러스터에서 사용되는 방식과 다릅니다. 포드와 서비스에 단일 CIDR을 함께 지정하는 대신 클러스터의 서브넷에 포드와 서비스에 각각 하나씩 보조 IP 주소 범위 두 개를 선택하거나 만들어야 합니다.
공유 VPC 고려사항
공유 VPC 환경에서 VPC 기반 클러스터를 만들 때 공유 VPC 호스트 프로젝트의 네트워크 관리자 역할이 있는 프로젝트 소유자, 편집자 또는 Identity and Access Management(IAM) 주 구성원이 클러스터의 서브넷 및 보조 IP 주소 범위를 수동으로 지정해야 합니다. 클러스터를 만드는 서비스 프로젝트 관리자에게는 최소한 공유 VPC 네트워크의 호스트 프로젝트의 서브넷에 대한 서브넷 수준 권한이 있어야 합니다.
공유 VPC 환경에서 보조 IP 주소 범위는 GKE에서 관리될 수 없습니다. 클러스터를 만들기 전에 공유 VPC 호스트 프로젝트의 네트워크 관리자가 서브넷과 보조 IP 주소 범위를 만들어야 합니다. 공유 VPC 네트워크에서 VPC 기반 클러스터를 설정하는 방법의 예시는 공유 VPC로 클러스터 설정을 참조하세요.
IP 주소 범위 계획
다음 섹션의 정보를 사용하여 클러스터에서 사용하는 서브넷의 기본 IP 주소 범위와 보조 IP 주소 범위의 크기를 계산할 수 있습니다.
서브넷 기본 IP 주소 범위
기본 노드 IP 주소 범위를 계획할 때 다음 조건을 고려하세요.
- 모든 서브넷에는 기본 IP 주소 범위가 있어야 합니다. 이것은 GKE에서 내부 부하 분산기 및 노드에 IP 주소를 할당하기 위해 사용되는 IP 주소 범위입니다.
- 서브넷이 생성된 후에는 서브넷의 기본 IP 주소 범위를 축소하거나 변경할 수 없습니다.
- 기본 IP 주소 범위의 처음 IP 주소 두 개와 마지막 IP 주소 두 개는 Google Cloud에서 예약되어 있습니다.
- Private Service Connect를 사용하는 클러스터는 기본 서브넷 범위를 사용하여 제어 영역 엔드포인트에 할당된 내부 IP 주소를 프로비저닝합니다. 하지만
private-endpoint-subnetwork
플래그를 사용해서 이 IP 주소 프로비저닝을 재정의할 수 있습니다. 자세한 내용은 클러스터 만들기 및 제어 영역 IP 주소 범위 선택을 참조하세요.
다음 표에서는 서브넷의 기본 IP 주소 범위 크기와 클러스터 구성을 고려하여 만들 수 있는 최대 노드 수를 보여줍니다.
- 시나리오 1: 기본 서브넷을 사용하는 클러스터의 최대 노드 수
- 시나리오 2:
private-endpoint-subnetwork
플래그를 사용하지 않는 Private Service Connect 클러스터의 최대 노드 수
서브넷 기본 IP 범위 | 시나리오 1 | 시나리오 2 |
---|---|---|
/29 서브넷 기본 IP 범위의 최소 크기 |
노드 4개 | 노드 3개 |
/28 | 노드 12개 | 노드 11개 |
/27 | 노드 28개 | 노드 27개 |
/26 | 노드 60개 | 노드 59개 |
/25 | 노드 124개 | 노드 123개 |
/24 | 노드 252개 | 노드 251개 |
/23 | 노드 508개 | 노드 507개 |
/22 | 노드 1,020개 | 노드 1,019개 |
/21 | 노드 2,044개 | 노드 2,043개 |
/20 자동 모드 네트워크에서 서브넷 기본 IP 범위의 기본 크기 |
노드 4,092개 | 노드 4,091개 |
/19 | 노드 8,188개 | 노드 8,187개 |
/8 서브넷 기본 IP 범위의 최대 크기 |
노드 16,777,212개 | 노드 16,777,211개 |
기본 IP 주소 범위 확장
기본 IP 주소 범위에서 IP 주소가 부족해지면 부하 분산기 및 네트워크 엔드포인트 그룹과 같은 Google Cloud 리소스에 서브넷이 사용되더라도 언제든지 기본 IP 주소 범위를 확장할 수 있습니다.
기본 IP 주소 범위를 확장하기 전 다음을 고려하세요.
- 서브넷에 겹치는 IP 주소 범위가 없어야 합니다.
- GKE는 기본 IP 주소 범위를 사용하여 내부 부하 분산기 및 노드에 IP 주소를 할당합니다.
유용한 수식
다음 수식을 사용하여 다음 작업을 수행할 수 있습니다.
기본 서브넷을 사용하는 클러스터에서 지정된 넷마스크가 지원할 수 있는 최대 노드 수 N을 계산합니다. 유효 범위가
8
~29
(양 끝 값 포함)인 S를 넷마스크 크기에 사용합니다.N = 2(32 -S) - 4
노드를 최대 S개까지 지원하는 데 필요한 넷마스크 크기 N를 계산합니다.
S = 32 - ⌈log2(N + 4)⌉
⌈⌉
는 Ceiling(최소 정수) 함수로, 다음 정수로 올림 처리합니다. 넷마스크 크기 S의 유효 범위는8
~29
(양 끝 값 포함)입니다.
private-endpoint-subnetwork
플래그를 사용하지 않는 Private Service Connect 클러스터에서는 앞의 수식을 사용할 수 있지만 N 값을 1만큼 줄입니다.
Pod의 서브넷 보조 IP 주소 범위
포드의 보조 IP 주소 범위를 신중하게 계획합니다.
다음 표에서는 포드에서 사용하는 서브넷의 보조 IP 주소 범위 크기를 고려하여 서브넷을 사용하는 모든 클러스터에 만들 수 있는 최대 노드 수와 최대 포드 수를 보여줍니다.
이 표에서는 노드당 최대 포드 수를 110개(기본 포드 밀도)로 가정합니다.
포드의 서브넷 보조 IP 범위 | 최대 포드 IP 주소 수 | 최대 노드 수 | 최대 포드 수 |
---|---|---|---|
/24 보조 범위 할당 방법을 사용자가 관리할 경우에 가능한 최소 포드 IP 범위 |
주소 256개 | 노드 1개 |
Autopilot: 포드 32개 표준: 포드 110개 |
/23 보조 범위 할당 방법을 사용자가 관리할 경우에만 가능 |
주소 512개 | 노드 2개 |
Autopilot: 포드 64개 표준: 포드 220개 |
/22 보조 범위 할당 방법을 사용자가 관리할 경우에만 가능 |
주소 1,024개 | 노드 4개 |
Autopilot: 포드 128개 표준: 포드 440개 |
/21 보조 범위 할당 방법을 GKE에서 관리할 경우에 가능한 최소 포드 IP 범위 |
주소 2,048개 | 노드 8개 |
Autopilot: 포드 256개 표준: 포드 880개 |
/20 | 주소 4,096개 | 노드 16개 |
Autopilot: 포드 512개 표준: 포드 1,760개 |
/19 | 주소 8,192개 | 노드 32개 |
Autopilot: 포드 1,024개 표준: 포드 3,520개 |
/18 | 주소 16,384개 | 노드 64개 |
Autopilot: 포드 2,048개 표준: 포드 7,040개 |
/17 | 주소 32,768개 | 노드 128개 |
Autopilot: 포드 4,096개 표준: 포드 14,080개 |
/16 | 주소 65,536개 | 노드 256개 |
Autopilot: 포드 8,192개 표준: 포드 28,160개 |
/15 | 주소 131,072개 | 노드 512개 |
Autopilot: 포드 16,384개 표준: 포드 56,320개 |
/14 GKE에서 보조 범위 할당 방법을 관리하는 경우 포드의 서브넷 보조 IP 주소 범위 기본 크기 |
주소 262,144개 | 노드 1,024개 |
Autopilot: 포드 32,768개 표준: 포드 112,640개 |
/13 | 주소 524,288개 | 노드 2,048개 |
Autopilot: 포드 65,536개 표준: 포드 225,280개 |
/12 | 주소 1,048,576개 | 노드 4,096개 |
Autopilot: 포드 131,072개 표준: 포드 450,560개 |
/11 | 주소 2,097,152개 | 노드 8,192개 |
Autopilot: 포드 262,144개 표준: 포드 901,120개 |
/10 | 주소 4,194,304개 | 노드 16,384개 |
Autopilot: 포드 524,288개 표준: 포드 1,802,240개 |
/9 가능한 최대 포드 주소 범위 |
주소 8,388,608개 | 노드 32,768개 |
Autopilot: 포드 1,048,576개 표준: 포드 3,604,480개 |
노드당 최대 포드 수를 변경한 경우 다음 수식을 사용하여 포드가 지원할 수 있는 서브넷의 보조 IP 주소 범위에 포함되는 최대 노드 및 포드 수를 계산할 수 있습니다.
각 노드 포드 범위의 넷마스크 크기 M을 계산합니다.
M = 31 - ⌈log2(Q)⌉
각 항목의 의미는 다음과 같습니다.- Q는 노드당 포드 수입니다.
⌈⌉
는 Ceiling(최소 정수) 함수로 다음 정수로 올림 처리합니다.- 예를 들어 Q이 110이면
M = 24
입니다.
포드의 서브넷 보조 IP 주소 범위에서 지원할 수 있는 최대 노드 수 N을 계산합니다.
N = 2(M - S)
각 항목의 의미는 다음과 같습니다.- M은 첫 번째 단계에서 계산된 포드의 각 노드 별칭 IP 주소 범위의 넷마스크 크기입니다.
- S는 서브넷 보조 IP 주소 범위의 서브넷 마스크 크기입니다.
- 예를 들어 M이 24이고 S가 20이면
N = 16
입니다.
포드의 서브넷 보조 IP 주소 범위에서 지원할 수 있는 최대 포드 수 P를 계산합니다.
P = N × Q
각 항목의 의미는 다음과 같습니다.- N은 이전 단계에서 계산된 최대 노드 수입니다.
- Q는 노드당 포드 수입니다.
- 예를 들어 N이 16이고 Q가 110이면
P = 1760
입니다.
연속되지 않은 멀티 포드 CIDR을 사용하여 포드에 더 많은 IP 주소를 추가할 수 있습니다.
서비스의 서브넷 보조 IP 주소 범위
서비스의 보조 IP 주소 범위를 신중하게 계획합니다. 또한 서브넷 보조 IP 주소 범위이므로 클러스터가 생성된 후 이 범위를 변경할 수 없습니다.
멀티 클러스터 서비스를 사용하는 경우 ServiceImport
객체는 서비스의 보조 IP 주소 범위에 속한 IP 주소를 사용합니다.
버전 1.27 이상이 실행되는 GKE Autopilot 클러스터와 버전 1.29 이상이 실행되는 GKE Standard 클러스터에서 GKE는 기본적으로 GKE 관리형 범위(34.118.224.0/20
)의 서비스에 IP 주소를 할당합니다. 이렇게 하면 서비스에 자체 IP 주소 범위를 지정할 필요가 없습니다. 다음 고려사항이 적용됩니다.
--services-ipv4-cidr
플래그나--services-secondary-range-name
플래그를 사용하여 서비스의 커스텀 범위를 선택적으로 지정할 수 있습니다.--services-ipv4-cidr
플래그(예:/22
)를 사용하여 범위 size만 지정하는 경우에도 GKE에서 GKE 관리형 범위를 사용하여 주소의 하위 범위를 가져옵니다.- GKE에서는 Google 관리형 범위가 사용될 때 서비스에 대해 별도의 보조 IP 주소 범위를 만들지 않습니다. GKE 관리형 범위는 서브넷의 보조 IP 주소 범위 할당량을 사용하지 않습니다.
다음 표에서는 서비스의 서브넷 보조 IP 주소 범위 크기를 고려하여 서브넷을 사용하여 단일 클러스터에서 만들 수 있는 최대 서비스 수를 보여줍니다.
서비스의 보조 IP 범위 | 최대 서비스 수 |
---|---|
/28 보조 범위 할당 방법을 사용자가 관리할 경우에 가능한 최소 서비스 주소 범위 |
서비스 16개 |
/27 보조 범위 할당 방법을 GKE에서 관리할 경우에 가능한 최소 서비스 주소 범위 |
서비스 32개 |
/26 | 서비스 64개 |
/25 | 서비스 128개 |
/24 | 서비스 256개 |
/23 | 서비스 512개 |
/22 | 서비스 1,024개 |
/21 | 서비스 2,048개 |
/20 보조 범위 할당 방법을 GKE에서 관리할 경우 서비스의 서브넷 보조 IP 범위 기본 크기 |
서비스 4,096개 |
/19 | 서비스 8,192개 |
/18 | 서비스 16,384개 |
/17 | 서비스 32,768개 |
/16 가능한 최대 서비스 주소 범위 |
서비스 65,536개 |
GKE 클러스터 간 IP 주소 범위 공유
동일한 서브네트워크에 있는 클러스터 간에 포드의 기본 범위, 보조 IP 주소 범위, 서비스의 보조 IP 주소 범위를 공유할 수 있습니다.
이 동작은 Standard 및 Autopilot 클러스터 모두에서 사용 가능합니다.
클러스터의 인프라를 관리하는 중앙 팀이 있는 경우 IP 주소 범위를 공유할 수 있습니다. 포드, 서비스, 노드에 세 가지 범위를 만들고 특히 공유 VPC 모델에서 재사용 또는 공유하여 오버헤드를 줄일 수 있습니다. 네트워크 관리자가 각 클러스터에서 특정 서브넷을 만들지 않아도 되므로 IP 주소를 보다 쉽게 관리할 수 있습니다.
노드의 기본 IP 주소 범위 공유
서브넷에 두 개 이상의 클러스터를 생성하는 경우 노드의 기본 IP 주소 범위가 기본적으로 공유됩니다.
노드의 기본 IP 주소를 공유할 경우 다음과 같은 제한사항이 적용됩니다.
- 노드의 기본 IP 주소 범위를 2개 이상의 VPC 기반 클러스터와 공유하는 경우, 한 클러스터가 공유 IP 주소 범위의 상당 부분을 사용하고 다른 클러스터들은 확장할 IP 주소가 부족한 채로 남겨질 수 있습니다.
포드의 보조 IP 주소 범위 공유
포드의 보조 범위를 공유하면 각 포드는 여전히 고유 IP 주소를 얻습니다.
포드의 보조 IP 주소 범위를 공유할 때는 다음과 같은 제한사항이 적용됩니다.
포드의 보조 IP 주소 범위를 2개 이상의 VPC 기반 클러스터와 공유하는 경우, 한 클러스터가 공유 IP 주소 범위의 상당 부분을 사용하고 다른 클러스터들은 확장할 IP 주소가 부족한 채로 남겨질 수 있습니다.
보조 IP 주소 범위를 공유하려면
--cluster-secondary-range
를 사용하여 명령줄에 전달합니다. UI에서 클러스터를 만들 때는 공유 보조 범위를 사용할 수 없습니다.
서비스의 보조 IP 주소 범위 공유
사용자 관리형 보조 범위를 사용하는 경우 클러스터 2개 이상에서 같은 서비스 서브넷 보조 IPv4 주소 범위를 동시에 사용할 수 있습니다.
서비스의 공통 서브넷 보조 IPv4 주소 범위를 공유하도록 클러스터를 2개 이상 구성하려면 각 클러스터를 만들 때 같은 서브넷 보조 IPv4 주소 범위를 사용합니다. 서비스의 공통 IPv4 주소 범위를 공유하는 데 개별 구성 플래그가 필요하지 않습니다.
서비스의 공통 IPv4 주소 범위를 공유하면 각 클러스터는 서비스의 전체 서브넷 보조 IPv4 주소 범위를 내부적으로 사용합니다. 서비스 IP 주소는 각 클러스터 노드 내에서 프로그래밍되지만 노드의 네트워크 인터페이스에 할당되지 않습니다. 서비스 IP 주소는 클러스터 VPC 네트워크 내에서 라우팅될 수 없습니다. 서비스와 동일한 클러스터 내의 클라이언트 포드에서만 서비스 IP 주소를 사용할 수 있습니다.
포드가 서비스 IP 주소로 패킷을 전송하면, 노드의 iptables 또는 eBPF 구성은 대상 네트워크 주소 변환(NAT)을 수행하여 패킷의 대상 IP 주소를 서비스 IP 주소에서 서빙 포드 IP 주소로 변경합니다. 대상 포드 IP 주소를 기준으로 패킷이 라우팅됩니다.
서비스의 보조 IP 주소 범위를 공유하면 다음과 같은 이점이 있습니다.
- 서브넷에서 생성된 서비스의 고유한 보조 IP 주소 범위 수 감소
- 더 적은 IP 주소 사용
서비스의 보조 IP 주소 범위를 공유할 때는 다음과 같은 제한사항이 적용됩니다.
- GKE용 VPC 범위 Cloud DNS에는 서비스의 보조 IP 주소 범위가 공유되지 않습니다.
다음 정규식과 일치하는 범위는 공유할 수 없습니다.
^gke-.*-services-[abcdef0-9]{8}
서비스의 보조 IP 주소 범위를 공유하려면
--cluster-secondary-range
를 사용하여 명령줄에 전달합니다. UI에서 클러스터를 만들 때는 서비스의 공유 보조 범위를 사용할 수 없습니다.
노드 제한 범위
주어진 GKE 클러스터의 최대 포드 수와 최대 서비스 수는 클러스터의 보조 범위 크기에 따라 제한됩니다. 클러스터의 최대 노드 수는 클러스터 서브넷의 기본 IP 주소 범위 및 클러스터의 Pod 주소 범위의 크기에 따라 제한됩니다.
다음 오류 메시지는 서브넷의 기본 IP 주소 범위 또는 클러스터의 포드 IP 주소 범위(포드의 서브넷 보조 IP 주소 범위)가 소진되었음을 나타냅니다.
Instance [node name] creation failed: IP space of [cluster subnet] is
exhausted
기본 서브넷을 확장하여 노드에 IP 주소를 추가하거나 연속되지 않은 다중 포드 CIDR을 사용하여 포드에 새 IP 주소를 추가할 수 있습니다. 자세한 내용은 포드의 IP 주소 여유 공간 부족을 참조하세요.
IPv4/IPv6 이중 스택 네트워킹
IPv4/IPv6 이중 스택 네트워킹을 사용하면 GKE에서 다음 객체에 IP 주소(ipFamilies
)를 할당하는 방법을 정의할 수 있습니다.
- 포드와 노드의 경우 GKE에서 IPv4 및 IPv6 주소 모두 할당할 수 있습니다.
- 서비스의 경우 GKE에서 단일 스택(IPv4만 또는 IPv6만) 또는 이중 스택 주소를 할당합니다.
GKE 버전 1.24 이상에서는 독립형 및 공유 VPC 네트워크의 새 GKE 클러스터에 이중 스택 네트워킹을 사용 설정할 수 있습니다. 또한 이중 스택 네트워킹이 사용 설정된 네트워크 정책을 적용할 수 있습니다.
이점
이중 스택 네트워킹의 이점은 다음과 같습니다.
- 엔드 투 엔드 IPv6 통신을 사용 설정합니다.
- 네트워크 주소 변환(NAT) 또는 IP 터널링보다 나은 성능을 지원합니다. 이것은 IPv6에서 IPv4로의 변환이 없기 때문입니다.
가용성
GKE의 이중 스택 네트워킹에는 다음과 같은 제한사항이 있습니다.
- 이중 스택 네트워킹은 GKE Dataplane V2가 사용 설정된 VPC 기반 클러스터에서만 사용할 수 있습니다.
- 이중 스택 네트워킹은 커스텀 모드 VPC의 서브넷에만 지원됩니다. 자세한 내용은 VPC 네트워크의 Google Cloud 유형을 참조하세요.
- 포드 또는 노드에 대한 단일 스택 IPv6 주소가 지원되지 않습니다.
- 이중 스택 클러스터는 IPv4 전용 클러스터와 비교하여 IPv4 및 IPv6를 모두 지원하기 위해 노드당 추가 메모리를 사용합니다. 대규모 클러스터를 설정할 때 이 특성을 고려하세요.
- 이중 스택 클러스터는 IPv6를 통한 비공개 Google 액세스를 지원하지 않습니다.
- GKE 버전 1.26.0-gke.2200 이상은 클러스터 내부 작업 및 외부 DNS 쿼리에 Cloud DNS를 사용하여 IPv6(AAAA 레코드)를 지원합니다.
- 이중 스택 서비스는
ClusterIP
,NodePort
,LoadBalancer
서비스에 지원됩니다.
- Windows 노드에 IPv6가 지원되지 않습니다.
이중 스택 네트워킹으로 클러스터를 만들기 전에 위의 제한사항을 고려하세요. 자세한 내용은 이중 스택 네트워킹을 사용하여 VPC 기반 클러스터를 만드는 방법을 참조하세요.
공개 및 비공개 IPv6 주소 할당
다음 표에서는 이중 스택 네트워킹 동작 및 구성을 사용하는 공개 및 비공개 IPv6 주소를 요약해서 보여줍니다.
ipv6-access-type 플래그 |
IP 주소 할당 | 서브넷 범위 |
---|---|---|
EXTERNAL |
GKE는 인터넷으로 라우팅할 수 있는 외부 IPv6 주소를 할당합니다. |
2600:1900/28 부터 제공
|
INTERNAL |
GKE는 인터넷으로 라우팅할 수 없는 내부 IPv6 주소를 할당합니다.
|
시작: fd20::/20 (전체 ULA 범위의 하위 집합: fc00::/7 ).
|
자세한 내용은 VPC 기반 클러스터에 이중 스택 네트워크 사용 방법을 참조하세요.
아키텍처
IPv4/IPv6 이중 스택 네트워킹이 있는 클러스터에는 다음 범위가 할당됩니다.
- 기본 범위로 사용할 각 서브넷에 대한 /64 범위입니다.
- 기본 노드 IP 주소 범위로 사용할 기본 범위의 /96 노드당 범위입니다.
해당 노드의 포드 IP 주소 범위로 사용할 기본 노드 IP 주소 범위의 /112 노드당 범위입니다. 이중 스택 네트워킹에서 포드는 IPv4 주소로 예약된 포드의 보조 범위가 아니라 노드와 비슷한 전체 포드 IP 주소 범위에서 IPv6 주소를 가져옵니다.
전체 포드 IP 주소 범위는 기본 노드 IP 범위에서 겹치지 않는 범위로 구성됩니다. 따라서 이 포드 IP 범위는 연속적이지 않습니다.
서비스에 사용할 /112 범위입니다. 이 범위는 GKE의 보조 서비스 IP 주소 범위에 예약된 Google 비공개 주소 범위의 /64 범위입니다.
다음 다이어그램은 Google Cloud 및 GKE 할당 IPv6 주소를 보여줍니다.
다이어그램에서 VPC 서브넷의 기본 범위는 2600:1900:0:1::/64
이고 GKE 서비스의 예약된 범위는 2600:2D00:0:4::0:0/64
입니다. 클러스터의 각 노드에는 기본 노드 IP 주소 범위에 대한 /96 범위와 포드 IP 주소 범위에 대한 /112 범위가 포함됩니다. 또한 클러스터에는 /112 보조 서비스 IP 주소 범위가 포함됩니다.
서비스
ClusterIP
또는 NodePort
유형의 IPv4/IPv6 이중 스택 서비스를 만들 수 있습니다.
버전 1.29 이상을 실행하는 새 GKE 클러스터는 LoadBalancer
유형의 이중 스택 서비스를 지원합니다.
ClusterIP
, NodePort
, 또는 LoadBalancer
유형의 서비스로 배포를 노출할 수 있습니다. 이러한 서비스 유형마다 ipFamilies
및 ipFamilyPolicy
필드를 IPv4, IPv6 또는 이중 스택 서비스로 정의할 수 있습니다. 자세한 내용은 배포 설정 방법 예시를 참조하세요.