VPC 기반 클러스터


이 페이지에서는 Google Kubernetes Engine(GKE)의 VPC 기반 클러스터에 대한 일반적인 내용을 간략하게 설명합니다.

개요

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 주소 범위는 최소한 /22(2(32-22) = 210 = 1,024개 주소)여야 합니다. 기본 IP 주소 범위마다 IP 주소 4개가 예약되어 있으므로 주소 1,024개 중 1,020개를 사용할 수 있습니다.

자세한 내용은 서브넷 기본 IP 주소 범위포드의 서브넷 보조 IP 주소 범위를 참조하세요.

포드

포드 IP 주소는 포드의 클러스터 서브넷 보조 IP 주소 범위에서 가져와 집니다. 노드당 최대 포드 수를 다르게 설정하지 않으면 GKE는 /24 별칭 IP 범위(주소 256개)를 포드가 실행되는 각 노드에 할당합니다. 각 노드에서는 별칭 IP 주소 256개를 사용하여 포드를 최대 110개까지 지원합니다.

노드당 포드를 최대 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 관리 범위(34.118.224.0/20)의 GKE 서비스에 IP 주소를 할당합니다. 이렇게 하면 서비스에 자체 IP 주소 범위를 지정할 필요가 없습니다. 자세한 내용은 서비스의 서브넷 보조 IP 주소 범위를 참조하세요.

서비스를 최대 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 주소 범위가 소진되면 다음 중 하나를 수행해야 합니다.

경로 기반 클러스터와의 차이점

포드와 서비스(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개 노드 11개
/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 주소 범위에 포함되는 최대 노드 및 포드 수를 계산할 수 있습니다.

  1. 각 노드 포드 범위의 넷마스크 크기 M을 계산합니다.
    M = 31 - ⌈log2(Q)⌉ 각 항목의 의미는 다음과 같습니다.

    • Q는 노드당 포드 수입니다.
    • ⌈⌉는 Ceiling(최소 정수) 함수로 다음 정수로 올림 처리합니다.
    • 예를 들어 Q이 110이면 M = 24 입니다.
  2. 포드의 서브넷 보조 IP 주소 범위에서 지원할 수 있는 최대 노드 수 N을 계산합니다.
    N = 2(M - S) 각 항목의 의미는 다음과 같습니다.

    • M은 첫 번째 단계에서 계산된 포드의 각 노드 별칭 IP 주소 범위의 넷마스크 크기입니다.
    • S는 서브넷 보조 IP 주소 범위의 서브넷 마스크 크기입니다.
    • 예를 들어 M이 24이고 S가 20이면 N = 16 입니다.
  3. 포드의 서브넷 보조 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 주소가 부족한 채로 남겨질 수 있습니다.

  • 여러 유형의 보조 범위 중에서 GKE 관리추가 포드 범위는 클러스터 간에 공유될 수 없습니다.

  • 보조 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 주소를 할당합니다.

INTERNAL IPv6 액세스 유형의 클러스터는 IPv6 주소를 통해 인터넷에 액세스할 수 없습니다. Cloud NAT는 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 또는 LoadBalancer 유형의 IPv6 서비스를 만들 수 있습니다.

ClusterIP, NodePort, 또는 LoadBalancer 유형의 서비스로 배포를 노출할 수 있습니다. 이러한 서비스 유형마다 ipFamiliesipFamilyPolicy 필드를 IPv4, IPv6 또는 이중 스택 서비스로 정의할 수 있습니다. 자세한 내용은 배포 설정 방법 예시를 참조하세요.

다음 단계