LoadBalancer 서비스 매개변수


이 페이지에서는 LoadBalancer 서비스 동작 및 구성을 제어하는 서비스 매니페스트의 파라미터에 대해 설명합니다. 이 페이지를 읽기 전에 Google Kubernetes Engine(GKE) LoadBalancer 서비스 개념을 숙지해야 합니다.

서비스 매개변수

GKE는 LoadBalancer 서비스에서 다음 매개변수를 지원합니다.

매개변수 서비스 필드 및 설명 내부 외부 버전 지원
내부 패스 스루 네트워크 부하 분산기 networking.gke.io/load-balancer-type: "Internal"

내부 패스 스루 네트워크 부하 분산기를 만들도록 GKE에 지시합니다.

자세한 내용은 LoadBalancer 서비스 개념을 참조하세요.

지원되는 모든 버전
백엔드 서비스 기반 외부 패스 스루 네트워크 부하 분산기 cloud.google.com/l4-rbs: "enabled"

백엔드 서비스 기반 외부 패스 스루 네트워크 부하 분산기를 만들도록 GKE에 지시합니다.

자세한 내용은 LoadBalancer 서비스 개념을 참조하세요.

GKE 1.25.5+
내부 트래픽 정책 spec.internalTrafficPolicy

Local로 설정하면 GKE는 노드의 클라이언트 포드에서 동일 노드의 서빙 포드로 패킷을 라우팅합니다. Cluster로 설정하면 GKE는 노드의 클라이언트 포드에서 모든 노드의 서빙 포드로 패킷을 라우팅합니다. 자세한 내용은 서비스 내부 트래픽 정책을 참고하세요.

이 매개변수는 GKE Dataplane V2를 실행하는 클러스터에는 지원되지 않습니다.

GKE 1.22+
외부 트래픽 정책 spec.externalTrafficPolicy

부하 분산기 상태 점검을 통과하는 노드와 패킷이 클러스터에서 준비 및 제공 포드로 라우팅되는 방법을 제어합니다. GKE 하위 설정이 사용 설정된 경우 노드가 GCE_VM_IP NEG로 그룹화되는 방법도 제어합니다.

자세한 내용은 LoadBalancer 서비스 개념을 참조하세요.

GKE 1.14+(Windows 노드 풀을 위한 1.23.4-gke.400+)
상태 점검 포트 spec.healthCheckNodePort

LoadBalancer 서비스의 부하 분산기 상태 점검을 배포합니다. 이 매개변수는 spec.externalTrafficPolicyLocal로 설정된 경우에만 유효합니다.

지원되는 모든 버전
방화벽 규칙 및 소스 IP 주소 허용 목록 spec.loadBalancerSourceRanges

GKE 및 VPC 네트워크에서 특정 소스 범위만 허용하도록 선택적 방화벽 규칙을 구성합니다. kube-proxy는 지정된 소스 범위와 일치하도록 iptables 규칙도 구성합니다.

지원되는 모든 버전
고정 IP 주소
  • spec.loadBalancerIP(IPv4 전용)
  • networking.gke.io/load-balancer-ip-addresses

부하 분산기의 전달 규칙에 할당된 고정 IPv4 주소, 고정 IPv6 주소 범위 또는 둘 다 지정합니다. 중요한 구성 요구사항 및 구현 세부정보는 공통 IP 주소 공유 고려사항을 참조하세요.

  • spec.loadBalancerIP: 지원되는 모든 버전
  • networking.gke.io/load-balancer-ip-addresses: GKE 1.29 이상 추가 클러스터 구성 또는 주석 요구사항은 고정 IP 주소 파라미터를 참고하세요.
네트워크 서비스 등급 cloud.google.com/network-tier

GKE가 외부 전달 규칙 및 IP 주소에 사용하는 네트워크 서비스 등급을 지정합니다. 유효한 주석 값은 StandardPremium(기본값)입니다.

GKE 1.19 이상
커스텀 서브넷
  • networking.gke.io/internal-load-balancer-subnet
  • networking.gke.io/load-balancer-subnet

(IPv6에만 적용)
  • networking.gke.io/internal-load-balancer-subnet: 지원되는 모든 버전
  • networking.gke.io/load-balancer-subnet: GKE 1.29 이상 추가 요구사항은 커스텀 서브넷 주석을 참고하세요.
전역 액세스 networking.gke.io/internal-load-balancer-allow-global-access: "true"

VPC 네트워크 또는 연결된 네트워크의 모든 리전에서 클라이언트가 액세스할 수 있도록 전달 규칙의 IP 주소를 사용 설정합니다.

GKE 1.16 이상에서 미리보기 버전. GKE 1.17.9-gke.600 이상에서 정식 버전.
모든 포트

주석이 필요하지 않지만 GKE 하위 설정을 사용 설정해야 합니다.

spec.ports[].port에 최소 6개(최대 100개)의 고유 포트가 지정된 경우 GKE가 모든 포트를 사용하도록 전달 규칙을 자동으로 구성합니다.

GKE 버전 1.18.19-gke.1400 이상
ipFamilyPolicy

spec.ipFamilyPolicy

GKE가 서비스에 IP 주소를 할당하는 방법을 정의합니다. spec.ipFamilyPolicySingleStack, PreferDualStack 또는 RequireDualStack으로 정의할 수 있습니다.

자세한 내용은 IPv4/IPv6 이중 스택 서비스를 참조하세요.

버전 1.29 이상의 GKE 클러스터는 LoadBalancer 서비스에 이중 스택 네트워크를 지원합니다.
ipFamilies(선택사항)

spec.ipFamilies

단일 스택 또는 이중 스택 서비스를 할당할 IP 주소 계열을 정의합니다. 다음 중 원하는 값을 사용합니다.

  • 단일 스택 IPv4 서비스만 해당하는 경우 IPv4
  • IPv6 서비스에만 해당하는 경우 IPv6
  • 서비스의 기본 IP 주소가 IPv4인 이중 스택 서비스의 경우 IPv4,IPv6
  • 서비스의 기본 IP 주소가 IPv6인 이중 스택 서비스의 경우 IPv6,IPv4
버전 1.29 이상의 GKE 클러스터는 LoadBalancer 서비스에 이중 스택 네트워크를 지원합니다.

상태 점검 포트

부하 분산기 상태 점검에 설명된 대로 GKE는 외부 패스 스루 네트워크 부하 분산기나 내부 패스 스루 네트워크 부하 분산기를 만들 때 항상 부하 분산기 상태 점검을 배포합니다.

healthCheckNodePort 매개변수의 설정 가능 여부는 다음 externalTrafficPolicy 구성에 따라 다릅니다.

externalTrafficPolicy 상태 점검 포트
Cluster

spec.healthCheckNodePort를 사용할 수 없습니다.

Local

spec.healthCheckNodePort를 사용하여 커스텀 포트를 선택할 수 있습니다. 지정되지 않은 경우 Kubernetes 제어 영역은 노드 포트 범위에서 상태 점검 포트를 할당합니다.

방화벽 규칙 및 소스 IP 주소 허용 목록

LoadBalancer 서비스를 만들면 GKE는 서비스에 해당하는 VPC 방화벽 규칙을 만듭니다. 각 방화벽 규칙의 특징은 다음과 같습니다.

  • 방화벽 규칙의 방향은 인그레스이며 해당 작업이 허용됩니다. Google Cloud의 묵시적 거부 인그레스 방화벽 규칙은 GKE가 인그레스 방화벽 규칙을 만들 때 허용 목록 모델을 사용한다는 의미입니다.
  • GKE는 방화벽 규칙의 프로토콜 및 대상 포트를 서비스의 spec.ports[] 목록에 지정된 포트로 설정합니다.
  • GKE는 대상 매개변수를 LoadBalancer의 가상 IP 주소로 설정하여 방화벽 규칙의 대상을 설정합니다.
  • 서비스에 spec.loadBalancerSourceRanges[]가 포함된 경우 GKE는 방화벽 규칙의 소스 매개변수를 해당 목록의 IP 주소로 설정합니다. 또한 각 노드에서 실행되는 kube-proxy 인스턴스는 지정된 IP 주소로 트래픽을 제한하도록 노드의 iptables 규칙을 구성합니다. 서비스에 loadBalancerSourceRanges[]가 포함되지 않은 경우 GKE는 방화벽 규칙의 소스 매개변수를 모든 IP 주소 (0.0.0.0/0)로 설정합니다.

LoadBalancer 서비스에 생성된 방화벽 규칙은 해당 서비스의 프로토콜 및 대상 포트와 일치하는 패킷을 서비스의 가상 IP 주소에 허용합니다.

공통 포트를 사용하는 서비스

클러스터에 공통 프로토콜과 대상 포트를 하나 이상 공유하는 서비스가 두 개 이상 있는 경우 유효한 소스 범위 집합은 해당 프로토콜과 대상 포트 조합을 지정하는 모든 서비스에 대한 loadBalancerSourceRanges의 합집합입니다. 이는 인그레스 방화벽 규칙의 대상 매개변수가 대상 IP 주소를 VM과 연결된 모든 IP 주소로 정의하기 때문입니다.

두 개의 LoadBalancer 서비스가 있는 클러스터를 가정해 보세요.

  • 첫 번째 서비스의 spec.ports[0].port는 TCP 포트 80이고 spec.loadBalancerSourceRanges=[100.10.0.0/16]입니다. 이 서비스에 해당하는 결과 부하 분산기의 IP 주소는 192.0.2.2입니다.
  • 두 번째 서비스의 spec.ports[0].port는 TCP 포트 80이고, spec.ports[1].port는 TCP 포트 90이고, spec.loadBalancerSourceRanges=[172.16.0.0/24]입니다. 이 서비스에 해당하는 결과 부하 분산기의 IP 주소는 198.51.100.3입니다.

GKE는 클러스터의 Virtual Private Cloud 네트워크에 두 개의 인그레스 허용 방화벽 규칙을 만듭니다. 두 방화벽 규칙 모두 클러스터의 모든 노드를 대상으로 지정합니다.

  • 첫 번째 방화벽 규칙은 소스 100.10.0.0/16에서 TCP 대상 포트 80으로의 패킷을 허용합니다.
  • 두 번째 방화벽 규칙은 소스 172.16.0.0/24에서 TCP 대상 포트 8090으로의 패킷을 허용합니다.

첫 번째 전달 규칙은 192.0.2.2:80 대상과 일치하는 트래픽을 라우팅합니다. 두 번째 전달 규칙은 198.51.100.3:80198.51.100.3:90 대상과 일치하는 트래픽을 라우팅합니다. 다음 3개는 모두 각 노드에 유효한 대상입니다(192.0.2.2:80, 198.51.100.3:80, 198.51.100.3:90). 다시 말하면 다음과 같습니다.

  • 두 서비스 모두 IP 주소 소스 범위 합집합(100.10.0.0/16 또는 172.16.0.0/24)에서 TCP 포트 80으로의 패킷을 허용합니다.
  • 두 번째 서비스는 172.16.0.0/24에서 TCP 포트 90으로의 패킷을 허용합니다.

동일한 프로토콜 및 대상 포트 조합을 사용하는 모든 서비스의 유효한 소스 범위 집합은 해당 프로토콜 및 대상 포트 조합을 사용하는 하나 이상의 서비스에서 spec.loadBalancerSourceRanges가 생략된 경우 모든 IP 주소가 됩니다. 예를 들어 두 번째 서비스에 spec.loadBalancerSourceRanges가 생략된 경우 두 번째 방화벽의 소스는 0.0.0.0/0이며 다음을 충족합니다.

  • 두 서비스 모두 IP 주소 소스 범위 합집합(100.10.0.0/16 또는 0.0.0.0/0)에서 TCP 포트 80으로의 패킷을 허용합니다. 0.0.0.0/0 범위에는 100.10.0.0/16 범위가 포함되므로 TCP 포트 80으로의 패킷의 유효한 소스는 모든 IP 주소입니다.
  • 두 번째 서비스는 0.0.0.0/0(모든 IP 주소)에서 TCP 포트 90으로의 패킷을 허용합니다.

고정 IP 주소

고정 IP 주소를 만들고 이 고정 주소를 부하 분산기의 전달 규칙에 할당하도록 GKE를 구성할 수 있습니다. 고정 IP 주소를 사용하면 LoadBalancer 서비스를 변경해도 부하 분산기의 IP 주소가 동일하게 유지됩니다. 고정 IP 주소가 없으면 LoadBalancer 서비스를 업데이트할 때 GKE에서 부하 분산기 전달 규칙에 다른 IP 주소를 할당할 수 있습니다. 전달 규칙 IP 주소는 서비스의 spec.clusterIP 주소와 다릅니다. LoadBalancer 서비스를 업데이트할 때는 서비스의 ClusterIP 주소가 변경되지 않습니다.

고정 IP 주소 파라미터

LoadBalancer 서비스에가 고정 IP 주소를 사용하도록 지시하려면 spec.loadBalancerIP 매개변수 또는 networking.gke.io/load-balancer-ip-addresses 주석을 사용합니다. GKE 버전 1.29 이상에서는 서비스 매니페스트에 파라미터와 주석이 모두 포함된 경우 주석이 spec.loadBalancerIP보다 우선합니다.

매개변수 또는 주석 및 값 요구사항 및 기능
spec.loadBalancerIP:
IPv4_ADDRESS

IPv4 전용 내부 LoadBalancer 서비스에 고정 내부 IPv4 주소를 지정할 수 있습니다. IPv4 전용 외부 LoadBalancer 서비스에 고정 외부 IPv4 주소를 지정할 수 있습니다. 이 파라미터는 지원되는 모든 GKE 버전에서 작동합니다.

networking.gke.io/load-balancer-ip-addresses:
IP_ADDRESS_RESOURCE_NAME
  • 단일 스택 LoadBalancer 서비스의 경우 주석 값을 IP 주소 자체가 아닌 IPv4 또는 IPv6 주소 리소스 이름으로 설정합니다.
  • 이중 스택 LoadBalancer 서비스의 경우 주석 값을 고정 IPv4 주소 리소스 이름과 고정 IPv6 주소 범위 리소스 이름으로 설정하고 쉼표로 구분합니다.

IPv4 전용, IPv6 전용, 이중 스택 내부 및 외부 LoadBalancer 서비스에 고정 IPv4 주소, 고정 IPv6 주소 범위 또는 둘 다를 지정할 수 있습니다. 주석을 사용하려면 GKE 1.29 이상과 다음과 같은 추가 요구사항이 필요합니다.

  • 내부 LoadBalancer 서비스와 함께 이 주석을 사용하려면 GKE 하위 설정을 사용 설정한 후 클러스터에서 내부 LoadBalancer 서비스를 만들어야 합니다.
  • 외부 LoadBalancer 서비스와 함께 이 주석을 사용하려면 외부 LoadBalancer 서비스를 만들 때 서비스 매니페스트에 cloud.google.com/l4-rbs: "enabled" 주석을 포함해야 합니다.

공통 IP 주소 공유 고려사항

이 섹션의 표에 표시된 대로 각 부하 분산기의 전달 규칙에 IP 주소, 프로토콜, 포트 사양, 네트워크 서비스 등급 사양의 고유한 조합이 사용되는 경우 둘 이상의 LoadBalancer 서비스가 동일한 고정 IP 주소를 참조할 수 있습니다. 추가사항:

  • 고정 IPv6 주소는 실제로 /96 IPv6 주소 범위이지만 GKE는 /96 범위의 첫 번째 IPv6 주소(/128)에서만 패킷을 허용하도록 노드를 구성합니다.

  • 두 개 이상의 내부 LoadBalancer 서비스가 동일한 내부 IPv4 주소 또는 내부 IPv6 주소 범위를 사용하려면 SHARED_LOADBALANCER_VIP 목적으로 고정 IP 주소를 만들어야 합니다.

내부 LoadBalancer 서비스 외부 LoadBalancer 서비스
포트 지정

내부 패스 스루 네트워크 부하 분산기의 전달 규칙은 최대 5개의 개별 포트 번호를 지원하거나 모든 포트를 사용하도록 구성할 수 있습니다.

내부 LoadBalancer 서비스에 spec.ports[]가 6개 이상 지정된 경우 GKE에서 모든 포트를 사용하도록 내부 패스 스루 네트워크 부하 분산기의 전달 규칙을 구성합니다.

전달 규칙에서 모든 포트를 사용하는 경우 다른 전달 규칙(즉, 다른 내부 LoadBalancer 서비스)에서는 동일한 IP 주소를 사용할 수 없습니다.

LoadBalancer 서비스 매니페스트에 cloud.google.com/l4-rbs: "enabled" 주석이 없으면 GKE는 대상 풀 기반 외부 패스 스루 네트워크 부하 분산기를 만듭니다.

대상 풀 기반 외부 패스 스루 네트워크 부하 분산기의 전달 규칙은 연속된 포트 범위를 사용해야 합니다. 연속된 포트 범위에는 서비스에 필요한 모든 포트가 포함되지만 서비스에서 사용되지 않는 추가 포트가 이 범위에 포함될 수도 있습니다. 예를 들어 서비스 매니페스트에서 포트 80 및 443을 지정하는 대상 풀 기반 외부 패스 스루 네트워크 부하 분산기로 구동되는 외부 LoadBalancer 서비스는 포트 범위가 80~443인 부하 분산기 전달 규칙을 사용합니다. 이렇게 포트 범위가 할당되면 다른 외부 LoadBalancer 서비스에서 포트 80, 443, 80~443 사이의 포트를 사용하지 못합니다.

GKE는 LoadBalancer 서비스 매니페스트에 cloud.google.com/l4-rbs: "enabled" 주석이 포함되는 경우 백엔드 서비스 기반 외부 패스 스루 네트워크 부하 분산기를 만듭니다. 백엔드 서비스 기반 외부 패스 스루 네트워크 부하 분산기의 전달 규칙은 최대 5개의 개별 포트 번호, 연속된 포트 범위를 지원하거나 모든 포트를 사용하도록 구성할 수 있습니다.

네트워크 서비스 등급 구성할 수 없습니다. 내부 주소는 항상 프리미엄 등급입니다.

고정 리전 외부 IPv4 주소에 맞게 구성할 수 있습니다. 고정 리전 외부 IPv6 주소 범위는 프리미엄 등급에서만 만들 수 있습니다.

고정 외부 IP 주소의 네트워크 서비스 등급 사양은 다음 중 하나와 일치해야 합니다.

  • LoadBalancer 서비스 매니페스트의 cloud.google.com/network-tier 주석에 지정된 등급(해당 주석이 매니페스트에 있는 경우) 또는
  • LoadBalancer 서비스 매니페스트에 cloud.google.com/network-tier 주석이 없는 경우 프로젝트의 기본 등급.

별도로 구성하지 않는 한 프로젝트의 기본 등급은 프리미엄입니다.

LoadBalancer 서브넷

클러스터와 동일한 리전 및 VPC 네트워크에 있는 커스텀 서브넷에서 임시 또는 고정 IPv4 주소, IPv6 주소 범위 또는 둘 다를 사용하도록 내부 LoadBalancer 서비스를 구성할 수 있습니다. 커스텀 서브넷을 사용하여 내부 LoadBalancer 서비스가 다음을 수행하도록 합니다.

  • 동일한 VPC 네트워크 및 리전에 있는 두 개 이상의 GKE 클러스터에서 내부 LoadBalancer 서비스에 의해 생성된 내부 패스 스루 네트워크 부하 분산기를 그룹화합니다.
  • 내부 패스 스루 네트워크 부하 분산기에 클러스터 노드 IPv4 주소와 별도의 IPv4 주소가 있는 내부 LoadBalancer 서비스를 만듭니다.
  • 이중 스택 클러스터에서 내부 패스 스루 네트워크 부하 분산기에 클러스터 노드 및 포드 IPv6 주소와 별도의 IPv6 주소 범위가 있는 내부 LoadBalancer 서비스를 만듭니다. 클러스터의 서브넷에 외부 IPv6 주소 범위가 있는 경우 내부 LoadBalancer 서비스를 지원하려면 커스텀 LoadBalancer 서브넷이 필요합니다.

클러스터와 동일한 리전 및 VPC 네트워크에 있는 커스텀 서브넷에서 임시 또는 고정 IPv6 주소 범위를 사용하도록 외부 LoadBalancer 서비스를 구성할 수 있습니다. 커스텀 서브넷을 사용하여 외부 패스 스루 네트워크 부하 분산기에 클러스터의 노드 및 포드 IPv6 주소와 별도의 IPv6 주소 범위가 있는 외부 LoadBalancer 서비스를 만듭니다. 클러스터 서브넷에 내부 IPv6 주소 범위가 포함되기 때문에 이중 스택 비공개 클러스터에서 외부 LoadBalancer 서비스를 지원하려면 커스텀 LoadBalancer 서브넷이 필요합니다.

커스텀 서브넷 주석

다음 주석 중 하나를 사용하여 LoadBalancer 서비스에 커스텀 서브넷에서 임시 또는 고정 IP 주소를 사용하도록 지시합니다. LoadBalancer 서비스 매니페스트에 두 주석이 모두 포함되어 있는 경우 주석 요구사항이 충족되면 networking.gke.io/load-balancer-subnet 주석이 우선 적용됩니다.

주석 및 값 요구사항 및 기능
networking.gke.io/internal-load-balancer-subnet:
SUBNET_RESOURCE_NAME

주석만 사용하여 IPv4 전용 내부 LoadBalancer 서비스의 커스텀 서브넷을 지정할 수 있습니다. 이 주석은 지원되는 모든 GKE 버전에서 작동합니다.

networking.gke.io/load-balancer-subnet:
SUBNET_RESOURCE_NAME

IPv4 전용, IPv6 전용 또는 이중 스택 내부 LoadBalancer 서비스의 커스텀 서브넷을 지정할 수 있습니다. IPv6 전용 또는 이중 스택 외부 LoadBalancer 서비스에 커스텀 서브넷을 지정할 수 있습니다. 이 주석에는 GKE 1.29 이상과 다음 추가 요구사항이 필요합니다.

  • 이 주석을 사용하여 내부 LoadBalancer 서비스의 커스텀 서브넷을 지정하려면 GKE 하위 설정을 사용 설정한 후 클러스터에서 내부 LoadBalancer 서비스를 만들어야 합니다.
  • 이 주석을 사용하여 외부 LoadBalancer 서비스의 커스텀 서브넷을 지정하려면 외부 LoadBalancer 서비스를 만들 때 서비스 매니페스트에 cloud.google.com/l4-rbs: "enabled" 주석을 포함해야 합니다.

내부 LoadBalancer 서비스의 서브넷 및 IPv4 주소

아래 표에서는 IPv4 전용 또는 이중 스택 내부 LoadBalancer 서비스의 유효한 서브넷 사양 및 IPv4 주소 조합을 설명합니다.

고정 IPv4 주소 임시 IPv4 주소
커스텀 서브넷
커스텀 서브넷 및 고정 IPv4 주소: 커스텀 서브넷의 기본 IPv4 주소 범위에 고정 내부 IPv4 주소가 생성되어야 합니다. 커스텀 서브넷 및 임시 IPv4 주소: GKE는 커스텀 서브넷 기본 IPv4 주소 범위에서 할당되지 않은 내부 IPv4 주소를 사용합니다.
클러스터 서브넷 클러스터 서브넷 및 고정 IPv4 주소: 고정 내부 IPv4 주소가 클러스터 서브넷의 기본 IPv4 주소 범위에서 생성되어야 합니다. 클러스터 서브넷 및 임시 IPv4 주소: GKE는 클러스터 서브넷 기본 IPv4 주소 범위에서 할당되지 않은 내부 IPv4 주소를 사용합니다.

내부 LoadBalancer 서비스의 서브넷 및 IPv6 주소 범위

다음 표에서는 IPv6 전용 또는 이중 스택 내부 LoadBalancer 서비스의 유효한 서브넷 사양 및 IPv6 주소 범위 조합을 설명합니다. 내부 패스 스루 네트워크 부하 분산기 IPv6 전달 규칙이 내부 /96 IPv6 주소 범위를 사용하더라도 GKE는 대상이 전달 규칙의 /96 범위의 첫 번째 IPv6 주소(/128)와 일치하는 패킷만 허용하도록 노드를 구성합니다.

고정 IPv6 주소 범위 임시 IPv6 주소 범위
커스텀 이중 스택 서브넷
  • 클러스터와 동일한 VPC 네트워크 및 리전에 있어야 합니다.
  • 내부 IPv6 주소 범위(액세스 유형 INTERNAL)가 있어야 합니다.
  • networking.gke.io/load-balancer-subnet 주석을 사용하여 지정해야 합니다.
커스텀 서브넷 및 고정 IPv6 주소 범위: 고정 내부 /96 IPv6 주소 범위가 커스텀 서브넷의 내부 /64 IPv6 주소 범위에서 생성되어야 합니다. 커스텀 서브넷 및 임시 IPv6 주소 범위: GKE는 커스텀 서브넷의 내부 /64 IPv6 주소 범위에서 할당되지 않은 내부 /96 IPv6 주소 범위를 사용합니다.
클러스터 이중 스택 서브넷
  • 내부 IPv6 주소 범위(액세스 유형 INTERNAL)가 있어야 합니다.
클러스터 서브넷 및 고정 IPv6 주소 범위: 클러스터 서브넷의 내부 /64 IPv6 주소 범위에서 고정 내부 /96 IPv6 주소 범위가 생성되어야 합니다. 클러스터 서브넷 및 임시 IPv6 주소 범위: GKE는 클러스터 서브넷의 내부 /64 IPv6 주소 범위에서 할당되지 않은 내부 /96 IPv6 주소 범위를 사용합니다.

외부 LoadBalancer 서비스의 서브넷 및 IPv4 주소

IPv4 전용 및 이중 스택 외부 LoadBalancer 서비스의 경우 외부 IPv4 주소(고정 외부 IPv4 주소 또는 임시 외부 IPv4 주소)를 서브넷에서 가져오지 않습니다.

외부 LoadBalancer 서비스의 서브넷 및 IPv6 주소 범위

아래 표에서는 IPv6 전용 또는 이중 스택 외부 LoadBalancer 서비스의 유효한 서브넷 사양 및 IPv6 주소 범위 조합을 설명합니다. 외부 패스 스루 네트워크 부하 분산기 IPv6 전달 규칙이 외부 /96 IPv6 주소 범위를 사용하더라도 GKE는 대상이 전달 규칙의 /96 범위의 첫 번째 IPv6 주소(/128)와 일치하는 패킷만 허용하도록 노드를 구성합니다.

고정 IPv6 주소 범위 임시 IPv6 주소 범위
커스텀 이중 스택 서브넷
  • 클러스터와 동일한 VPC 네트워크 및 리전에 있어야 합니다.
  • 외부 IPv6 주소 범위(액세스 유형 EXTERNAL)가 있어야 합니다.
  • networking.gke.io/load-balancer-subnet 주석을 사용하여 지정해야 합니다.
커스텀 서브넷 및 고정 IPv6 주소 범위: 고정 외부 /96 IPv6 주소 범위가 커스텀 서브넷의 외부 /64 IPv6 주소 범위에서 생성되어야 합니다. 고정 외부 IPv6 주소 범위는 프리미엄 등급에서만 만들 수 있습니다. 커스텀 서브넷 및 임시 IPv6 주소 범위: GKE는 커스텀 서브넷의 외부 /64 IPv6 주소 범위에서 할당되지 않은 외부 /96 IPv6 주소 범위를 사용합니다.
클러스터 이중 스택 서브넷
  • 외부 IPv6 주소 범위(액세스 유형 EXTERNAL)가 있어야 합니다.
클러스터 서브넷 및 고정 IPv6 주소 범위: 고정 외부 /96 IPv6 주소 범위가 클러스터 서브넷의 외부 /64 IPv6 주소 범위에서 생성되어야 합니다. 고정 외부 IPv6 주소 범위는 프리미엄 등급에서만 만들 수 있습니다. 클러스터 서브넷 및 임시 IPv6 주소 범위: GKE는 클러스터 서브넷의 외부 /64 IPv6 주소 범위에서 할당되지 않은 외부 /96 IPv6 주소 범위를 사용합니다.

전역 액세스

networking.gke.io/internal-load-balancer-allow-global-access 주석이 false이거나 내부 LoadBalancer 서비스에 지정되지 않은 경우 GKE는 전달 규칙에 전역 액세스가 사용 중지된 내부 패스 스루 네트워크 부하 분산기를 만듭니다. 전역 액세스가 사용 중지된 경우 부하 분산기에 액세스해야 하는 클라이언트는 동일한 리전 및 VPC 네트워크 또는 클러스터의 VPC 네트워크에 연결된 네트워크에 있어야 합니다.

networking.gke.io/internal-load-balancer-allow-global-access 주석이 내부 LoadBalancer 서비스의 true인 경우 GKE는 내부 패스 스루 네트워크 부하 분산기의 전달 규칙에서 전역 액세스 옵션을 사용 설정합니다. VPC 네트워크의 모든 리전 또는 클러스터의 VPC 네트워크에 연결된 네트워크에 있는 클라이언트는 부하 분산기에 액세스할 수 있습니다.

연결된 네트워크의 클라이언트에 전역 액세스를 적용하는 방법에 대한 자세한 내용은 다음을 참조하세요.

모든 포트 전달 규칙

내부 패스 스루 네트워크 부하 분산기의 전달 규칙은 5개의 고유 포트 번호 또는 모든 포트를 지원합니다.

GKE 하위 설정이 사용 중지된 GKE 클러스터에서 내부 LoadBalancer 서비스는 서비스의 spec.ports[].port에 있는 5개의 고유 포트만 지원할 수 있습니다.

GKE 하위 설정이 사용 설정된 GKE 클러스터에서 내부 LoadBalancer 서비스는 서비스의 spec.ports[].port에 있는 최대 100개의 포트만 지원할 수 있습니다. 6개~100개의 고유한 spec.ports[].port 항목이 있는 내부 LoadBalancer 서비스의 경우 GKE는 생성 후 모든 포트를 사용하도록 내부 패스 스루 네트워크 부하 분산기의 전달 규칙을 구성합니다. 서비스에 포트가 6개 이상 있으므로 GKE 컨트롤러는 전달 규칙의 모든 포트를 사용 설정합니다. 모든 포트를 사용하도록 전달 규칙을 구성하면 GKE는 서비스의 spec.ports[].port에 구성된 특정 포트에 대한 인그레스 허용 방화벽 규칙만 만듭니다.

내부 패스 스루 네트워크 부하 분산기 전달 규칙과 유효한 포트 사양에 대한 자세한 내용은 전달 규칙 및 포트 사양을 참조하세요.

IPv4/IPv6 이중 스택 LoadBalancer 서비스

단일 스택(IPv4 전용 또는 IPv6 전용) 또는 이중 스택일 수 있는 내부 또는 외부 LoadBalancer 서비스를 만들 수 있습니다. 단일 스택 LoadBalancer 서비스는 IPv4 주소 또는 IPv6 주소로 단일 전달 규칙을 만듭니다. 이중 스택 LoadBalancer 서비스는 IPv4 주소 및 IPv6 주소를 사용하여 2개의 전달 규칙을 만듭니다. IPv4/IPv6 이중 스택 LoadBalancer 서비스를 만들려면 IPv4/IPv6 이중 스택 클러스터에 배포하고 사용하는 부하 분산기 유형에 따라 다음 중 하나를 완료합니다.

각 서비스에 대해 ipFamilyPolicyipFamilies 사양을 정의할 수 있습니다. 자세한 내용은 IPv4/IPv6 이중 스택을 참조하세요.

이중 스택 LoadBalancer 서비스 제한사항

  • IPv6 주소를 사용하는 LoadBalancer 서비스는 스택 유형이 ipv4-ipv6인 클러스터에서만 지원됩니다. 자세한 내용은 VPC 기반 클러스터에 이중 스택 IP 주소 사용 방법을 참조하세요.
  • 단일 스택 주소로 만든 LoadBalancer 서비스는 이중 스택 서비스로 업그레이드할 수 없습니다.

  • 이중 스택 주소로 만든 LoadBalancer 서비스는 다음 조건에 따라 단일 스택으로 변경될 수 있습니다.

    • ipFamilies ["IPv4","IPv6"]가 포함된 서비스는 ipFamilies IPv4가 있는 서비스로 변경할 수 있지만 IPv6로는 변경할 수 없습니다.
    • ipFamilies ["IPv6","IPv4"]가 포함된 서비스는 ipFamilies IPv6가 있는 서비스로 변경할 수 있지만 IPv4로는 변경할 수 없습니다.