네트워크 엔드포인트 그룹(NEG)은 백엔드 엔드포인트 또는 서비스 그룹을 지정하는 구성 객체입니다. 영역 NEG는 IP 주소 컬렉션 또는 단일 서브넷 내 Google Cloud 리소스의 IP 주소 및 포트 조합을 나타내는 영역 리소스입니다.
NEG를 사용하면 전체 VM 대신 소프트웨어 서비스를 나타내는 IP 주소 및 포트의 논리적 그룹을 만들 수 있기 때문에 유용합니다. Apache Mesos 또는 Cloud Foundry 같은 다른 조정 서비스에서 관리하는 마이크로서비스(Google Cloud VM에서 실행)의 IP 주소는 엔드포인트일 수 있습니다.
다른 NEG 유형에 대한 자세한 내용은 다음을 참조하세요.
NEG를 구성하는 네트워크 엔드포인트 유형에 따라 2가지 유형의 영역 NEG가 있습니다. 두 가지 유형의 영역 NEG는 서로 다른 사용 사례와 부하 분산기 유형을 지원합니다.
GCE_VM_IP_PORT
엔드포인트가 있는 영역 NEG: 다음 부하 분산기의 백엔드로 지원됩니다.GCE_VM_IP
엔드포인트가 있는 영역 NEG: 다음 부하 분산기의 백엔드로 지원됩니다.
엔드포인트가 GCE_VM_IP
인 NEG
패스 스루 네트워크 부하 분산기는 GCE_VM_IP
엔드포인트가 있는 영역 NEG를 지원합니다. 이러한 영역 NEG에는 Compute Engine VM의 네트워크 인터페이스의 기본 내부 IPv4 주소를 사용하여 표현된 엔드포인트가 하나 이상 포함됩니다.
Google Cloud는 IP 주소를 사용하여 엔드포인트를 나타내지만 GCE_VM_IP
엔드포인트의 목적은 네트워크 인터페이스 자체를 식별하는 것입니다. 네트워크 인터페이스가 NEG의 서브넷에 있어야 합니다.
GCE_VM_IP
엔드포인트는 네트워크 인터페이스를 식별하므로 GCE_VM_IP
엔드포인트로 포트를 지정할 수 없습니다.
이러한 유형의 엔드포인트는 내부 패스 스루 네트워크 부하 분산기 및 외부 패스 스루 네트워크 부하 분산기의 백엔드 서비스에서 백엔드로만 사용할 수 있습니다.
엔드포인트가 GCE_VM_IP_PORT
인 NEG
이러한 영역 NEG에는 다음 IP 주소 또는 IP 주소 및 목적지 포트 조합 중 하나 이상이 포함됩니다.
- VM 네트워크 인터페이스의 기본 내부 IPv4 주소
- VM 네트워크 인터페이스의 기본 내부 IPv4 주소 및 목적지 포트 번호
- VM 네트워크 인터페이스에 할당된 별칭 IP 주소 범위의 내부 IPv4 주소
- VM 네트워크 인터페이스에 할당된 별칭 IP 주소 범위의 내부 IPv4 주소 및 목적지 포트 번호
GCE_VM_IP_PORT
엔드포인트가 포함된 네트워크 인터페이스는 NEG의 서브넷에 있어야 합니다. GCE_VM_IP_PORT
엔드포인트에서 포트 번호를 생략하면 Google Cloud는 엔드포인트에 NEG의 기본 포트 번호를 사용합니다.
이러한 영역 NEG 백엔드를 사용하면 IP 주소 및 포트를 지정할 수 있으므로 VM 인스턴스 내에서 실행되는 애플리케이션 또는 컨테이너 간에 세분화 방식으로 트래픽을 배포할 수 있습니다(컨테이너 네이티브 부하 분산).
GKE는 다음과 같은 용도로 GCE_VM_IP_PORT
엔드포인트를 사용합니다.
GCE_VM_IP_PORT
엔드포인트가 GKE에서 관리하는 영역별 NEG를 사용하는 자체 관리형 부하 분산기를 만들 수 있습니다. 자세한 내용은 독립형 영역별 NEG를 통한 컨테이너 기반 부하 분산을 참조하세요.
애플리케이션 부하 분산기 및 프록시 네트워크 부하 분산기는 GCE_VM_IP_PORT
엔드포인트가 있는 영역 NEG를 지원합니다.
엔드포인트 사양
NEG를 만들 때 영역, 네트워크, 서브넷을 선택합니다. 모든 엔드포인트 IP 주소는 영역 NEG와 동일한 서브넷에 있어야 합니다.
선택한 네트워크가 자동 모드 VPC 네트워크이면 서브넷 지정 단계는 생략해도 됩니다. 하지만 서브넷은 여전히 영역 NEG와 연결되어 있습니다. 자동 모드 VPC 네트워크를 지정했지만 영역 NEG를 만들 때 서브넷을 지정하지 않으면 영역 NEG에 대해 선택한 영역이 포함된 리전에 자동으로 생성된 서브넷을 사용하게 됩니다.
만드는 영역 NEG 유형은 NEG를 만들 때 지정됩니다(GCE_VM_IP
또는 GCE_VM_IP_PORT
). 이렇게 하면 NEG가 지원하는 엔드포인트 유형이 결정됩니다.
GCE_VM_IP_PORT
영역 NEG
GCE_VM_IP_PORT
영역별 NEG에는 다음이 적용됩니다.
각 VM 엔드포인트의 이름을 지정해야 합니다.
각 엔드포인트 VM은 NEG와 동일한 영역에 있어야 합니다.
NEG의 모든 엔드포인트는 IP 주소와 포트의 고유한 조합이어야 합니다. 2개 이상의 NEG에서 엔드포인트 IP 주소와 포트의 고유한 조합을 참조할 수 있습니다.
각 엔드포인트 VM은 NEG와 동일한 VPC 네트워크에 네트워크 인터페이스가 있어야 합니다. 엔드포인트 IP 주소는 NEG에 지정된 것과 동일한 서브넷과 연결되어야 합니다.
각 NEG는 NEG당 최대 엔드포인트 수를 지원합니다. 엔드포인트는 여러 고유한 VM 간에 분산되거나 하나의 VM에 위치할 수 있습니다.
GCE_VM_IP_PORT
NEG의 경우 엔드포인트를 추가할 때 IP 주소와 포트를 지정하거나, IP 주소만 지정할지, 둘 다 지정하지 않을 있습니다.
IP 주소와 포트를 지정하는 경우 IP 주소는 VM 네트워크 인터페이스의 기본 내부 IP 주소이거나 네트워크 인터페이스의 별칭 IP일 수 있습니다. 포트는 선택 항목입니다.
IP 주소만 지정하는 경우 IP 주소는 VM 네트워크 인터페이스의 기본 내부 IP 주소이거나 네트워크 인터페이스의 별칭 IP 주소일 수 있습니다. 사용되는 포트는 NEG의 기본 포트입니다.
둘 다 생략하는 경우 Google Cloud가 VM의 기본 내부 IP 주소를 선택하고 NEG의 기본 포트를 사용합니다.
GCE_VM_IP
영역 NEG
GCE_VM_IP
영역별 NEG에는 다음이 적용됩니다.
각 VM 엔드포인트의 이름을 지정해야 합니다.
각 엔드포인트 VM은 NEG와 동일한 영역에 있어야 합니다.
GCE_VM_IP
NEG의 모든 엔드포인트는 고유한 IP 주소여야 합니다. 고유한 엔드포인트 IP 주소는 두 개 이상의 NEG에서 참조할 수 있습니다.각
GCE_VM_IP
NEG는 항상 네트워크 및 하위 네트워크와 연결됩니다. 엔드포인트를 추가할 때 IP 주소를 지정할지 여부를 선택할 수 있습니다. IP 주소를 지정하는 경우 NEG의 서브네트워크와 일치하는 연결된 VM 인스턴스의 기본 내부 IP 주소로 설정해야 합니다. 멀티 NIC VM 인스턴스의 네트워크 인터페이스에서 가져온 기본 내부 IP 주소는 NEG 서브네트워크와 일치하는 한 NEG에 추가될 수 있습니다.각 NEG는 NEG당 최대 엔드포인트 수를 지원합니다. 엔드포인트는 모든 고유한 VM 간에 분산되어야 합니다. VM에 동일한 서브넷에 연결된 네트워크 인터페이스가 두 개 이상 있을 수 없으므로 단일 VM에 여러 엔드포인트를 배치할 수 없습니다.
영역별 NEG를 사용한 부하 분산
영역 NEG는 부하 분산기에서 백엔드 서비스의 백엔드로 사용할 수 있습니다.
영역 NEG를 백엔드 서비스의 백엔드로 사용하면 해당 백엔드 서비스의 다른 모든 백엔드도 동일한 유형의 영역 NEG여야 합니다(모든 GCE_VM_IP
또는 GCE_VM_IP_PORT
). 인스턴스 그룹과 영역 NEG를 동일한 백엔드 서비스에서 백엔드로 사용할 수 없습니다.
동일한 네트워크 엔드포인트를 둘 이상의 영역 NEG에 추가할 수 있습니다. 둘 이상의 백엔드 서비스의 백엔드로 동일한 영역 NEG를 사용해도 됩니다.
GCE_VM_IP_PORT
영역 NEG는 백엔드 서비스의 프로토콜에 따라 RATE
분산 모드 또는 CONNECTION
분산 모드를 사용할 수 있습니다. 지원되는 부하 분산기에는 대상 용량이 정의되어 있어야 합니다.
GCE_VM_IP
영역 NEG는 CONNECTION
분산 모드를 사용해야 합니다. 또한 내부 패스 스루 네트워크 부하 분산기와 외부 패스 스루 네트워크 부하 분산기는 대상 용량 설정을 지원하지 않습니다.
패스 스루 네트워크 부하 분산기
GCE_VM_IP
엔드포인트가 있는 영역 NEG는 내부 패스 스루 네트워크 부하 분산기 및 외부 패스 스루 네트워크 부하 분산기에서 백엔드 서비스의 백엔드로만 사용할 수 있습니다.
GCE_VM_IP
엔드포인트가 있는 NEG의 기본 사용 사례는 다음 섹션을 참조하세요.
유연한 엔드포인트 그룹화
인스턴스 그룹과 마찬가지로 여러 패스 스루 네트워크 부하 분산기의 백엔드와 동일한 NEG를 사용할 수 있습니다. 인스턴스 그룹과 달리 NEG 엔드포인트는 여러 NEG의 구성원일 수 있으며, 이러한 NEG는 각각 하나 이상의 패스 스루 네트워크 부하 분산기의 백엔드로 사용할 수 있습니다. 인스턴스 그룹에 비해 VM 인스턴스가 단일 인스턴스 그룹의 일부만 될 수 있다는 제약이 없습니다.
다음 그림은 공유 VM이 있는 샘플 내부 패스 스루 네트워크 부하 분산기 아키텍처를 보여줍니다.
백엔드 엔드포인트로 nic0
이외의 인터페이스
GCE_VM_IP
엔드포인트가 있는 영역 NEG를 사용하면 VM의 nic0
이외의 네트워크 인터페이스로 부하를 분산할 수 있습니다. 일반적으로 관리 작업을 위해 nic0
을 예약하는 서드 파티 어플라이언스 VM과 통합할 때 유용할 수 있습니다. GCE_VM_IP
NEG를 사용하면 동일한 VM의 nic0
가 아닌 모든 네트워크 인터페이스를 패스 스루 네트워크 부하 분산기의 NEG 백엔드에 연결할 수 있습니다.
GKE 하위 설정
GKE는 GCE_VM_IP
영역 NEG 및 하위 설정을 사용하여 다음과 같은 방법으로 내부 패스 스루 네트워크 부하 분산기의 확장성을 개선합니다.
하위 설정을 사용하지 않으면 GKE는 영역당 하나의 비관리형 인스턴스 그룹을 만듭니다. 이는 해당 영역에 있는 모든 노드 풀의 클러스터 노드로 구성됩니다. 이러한 영역 인스턴스 그룹은 하나 이상의 내부 LoadBalancer 서비스(및 NEG를 사용하지 않는 외부 인그레스)의 백엔드로 사용됩니다.
하위 설정을 사용하면 GKE는 각 내부 LoadBalancer 서비스에 대해 GCE_VM_IP
영역 NEG를 만듭니다. 동일한 엔드포인트가 둘 이상의 영역 NEG의 구성원이 될 수 있습니다. 인스턴스 그룹과 달리 Google Cloud는 동일한 엔드포인트가 포함된 여러 영역 NEG에 부하를 분산할 수 있습니다.
하위 설정은 노드가 250개가 넘는 클러스터에서 내부 LoadBalancer 서비스에 트래픽을 보다 효율적으로 분산합니다. 예를 들어 300노드 GKE 클러스터에는 NEG에 25개 노드가 있는 한 개의 내부 LoadBalancer 서비스가 있을 수 있습니다. 해당 서비스에는 25개의 제공 Pod가 있기 때문입니다. 이 서비스의 인스턴스 그룹 백엔드에 300개 노드를 모두 추가할 필요는 없습니다.
NEG, 전달 규칙, 백엔드 서비스, 기타 Google Cloud 네트워킹 리소스의 할당량은 계속 적용됩니다.
자세한 내용은 내부 패스 스루 네트워크 부하 분산기 하위 설정 사용을 참조하세요.
애플리케이션 부하 분산기 및 프록시 네트워크 부하 분산기
다음 그림은 GCE_VM_IP_PORT
엔드포인트가 있는 영역 NEG가 백엔드인 부하 분산기의 구성 요소를 보여줍니다.
이러한 부하 분산기의 아키텍처 요구사항에 대한 자세한 내용은 다음을 참조하세요.
GCE_VM_IP_PORT
영역 NEG의 기본 사용 사례는 컨테이너 기반 부하 분산이므로 VM에서 실행되는 컨테이너(예: GKE 클러스터의 포드 IP 주소)에 직접 트래픽을 분산시킬 수 있습니다.
컨테이너 기반 부하 분산은 부하 분산기가 Pod를 직접 대상으로 지정하고, VM 수준 대신 Pod 수준으로 부하 분산 결정을 내릴 수 있게 해줍니다.
다음 예시는 VM의 컨테이너에서 실행되는 마이크로서비스 간에 부하 분산기가 트래픽을 분산시키는 방법을 보여줍니다. VM은 서브넷에서 별칭 IP 범위를 사용하도록 구성되며, 이러한 범위는 컨테이너에서 주소로 사용합니다.
GKE 인그레스에서 관리되는 NEG 또는 독립형 NEG를 사용하는 두 가지 방법으로 컨테이너 기반 부하 분산을 구성할 수 있습니다.
NEG가 있는 Kubernetes 인그레스(권장)
NEG가 인그레스와 함께 사용되면 인그레스 컨트롤러는 HTTP(S) 부하 분산기의 모든 측면을 용이하게 해줍니다. 여기에는 가상 IP 주소, 전달 규칙, 상태 점검, 방화벽 규칙 등이 포함됩니다. 이를 구성하는 방법은 인그레스를 통한 컨테이너 기반 부하 분산을 참조하세요.
인그레스는 NEG 관리를 간소화하는 기능이 많기 때문에 컨테이너 기반 부하 분산을 위해 NEG를 사용할 때 권장되는 방법입니다. 또는 다음 지점(독립형 NEG)에 설명된 대로 프록시 부하 분산기를 수동으로 만들 수 있지만 GKE에서 NEG 엔드포인트 멤버십을 계속 관리할 수 있습니다.
인그레스를 통해 부하 분산기를 설정하는 방법에 대한 자세한 내용은 인그레스를 통한 컨테이너 기반 부하 분산을 참조하세요.
독립형 NEG
독립형 NEG는 GKE 외부에서 부하 분산기 구성요소를 유연하게 구성할 수 있는 동시에 포드 IP 주소 및 컨테이너 포트를 나타내는
GCE_VM_IP_PORT
엔드포인트를 가진 영역 NEG를 만드는 방법을 GKE 클러스터에 제공합니다.GKE에서 독립형 영역 NEG를 사용하는 예시는 다음을 참조하세요.
제한사항
- 기존 네트워크에서는 영역 NEG를 사용할 수 없습니다.
- NEG를 백엔드로 사용하는 백엔드 서비스는 인스턴스 그룹도 백엔드로 사용할 수 없습니다.
GCE_VM_IP
영역 NEG에 대한 제한사항:
GCE_VM_IP
엔드포인트가 있는 영역 NEG는 내부 패스 스루 네트워크 부하 분산기 및 외부 패스 스루 네트워크 부하 분산기에서만 지원됩니다.default-port
속성은GCE_VM_IP
영역 NEG에 지원되지 않습니다.
할당량
- 프로젝트당 NEG, 백엔드 서비스당 NEG, NEG당 엔드포인트 같은 NEG 할당량에 대한 자세한 내용은 부하 분산 할당량 페이지를 참조하세요.
다음 단계
- 영역별 NEG 구성에 대한 자세한 내용은 영역별 네트워크 엔드포인트 그룹 설정을 참조하세요.
- Google Kubernetes Engine에서 영역별 NEG를 사용하는 방법은 인그레스를 통한 컨테이너 기반 부하 분산을 참조하세요.