이 페이지에서는 Google Kubernetes Engine (GKE) 서비스의 사용률 기반 부하 분산을 소개합니다. 이 기능은 백엔드 포드의 리소스 사용률을 평가하고 실제 워크로드 용량을 사용하여 트래픽을 지능적으로 재분산하여 애플리케이션 가용성을 높이고 유연한 라우팅을 지원합니다.
이 페이지는 GKE에서 서비스를 관리하고 실시간 리소스 사용률에 따라 트래픽 분산을 최적화하려는 클라우드 설계자 및 네트워킹 전문가를 대상으로 합니다.
이 페이지를 읽기 전에 다음 내용을 숙지해야 합니다.
- GKE 개념: GKE 클러스터, 노드, 포드를 포함합니다.
- Kubernetes 서비스: Kubernetes 내에서 애플리케이션이 노출되는 방식입니다.
- Cloud Load Balancing: Cloud Load Balancing, 특히Google Cloud 부하 분산기 작동 방식에 대한 일반적인 이해
- Kubernetes Gateway API: GKE에서 서비스를 노출하고 트래픽을 관리하는 데 권장되는 방법입니다.
- 네트워크 엔드포인트 그룹 (NEG): GKE 서비스가 NEG를 사용하여 Cloud 부하 분산과 통합하는 방법
- 기본 리소스 사용률 측정항목: 예를 들어 사용률 기반 부하 분산에 사용되는 현재 측정항목인 CPU 사용률이 있습니다.
개요
Cloud Load Balancing 인프라는 포드 상태 및 적격성을 결정하는 표준 연결 가능성 측정항목(HTTP, HTTPS, HTTP/2, gRPC 포함)을 기반으로 GKE 서비스로 트래픽을 라우팅합니다. 기본적으로 포드 가용성과 선택적으로 정의된 트래픽 분산 정책(예: GCPTrafficDistributionPolicy
)을 고려하여 모든 정상 백엔드 포드로 트래픽을 전달합니다.
최신 애플리케이션은 CPU 사용량을 추적하므로 비용을 파악하고, 성능을 모니터링하고, 용량을 효과적으로 관리할 수 있습니다. 이러한 요구사항을 충족하기 위해 부하 분산기는 실시간 리소스 사용률 데이터를 측정항목으로 사용하여 지능형 트래픽 분산을 위해 각 백엔드 포드가 처리할 수 있는 최적의 트래픽 양을 결정합니다.
GKE 서비스의 사용률 기반 부하 분산은 리소스 사용률을 측정항목으로 평가하여 백엔드 포드의 애플리케이션 트래픽 처리 능력을 확인합니다. 그런 다음 하나 이상의 포드가 과도하게 사용되면 트래픽을 다른 백엔드로 리밸런싱합니다.
특징 및 이점
사용률 기반 부하 분산은 다음과 같은 이점을 제공합니다.
애플리케이션 가용성 향상: 백엔드에 부담이 있을 때 리소스 사용률이 낮은 포드로 트래픽의 우선순위를 지정하여 애플리케이션 성능을 유지하고, 속도 저하 및 서비스 중단을 방지하며, 사용자에게 안정적인 환경을 제공합니다.
유연한 라우팅 제공: 비즈니스 사용 사례에 정확히 부합하는 트래픽 분산 정책을 정의할 수 있는 추가 측정항목 세트를 제공합니다.
사용률 기반 부하 분산 작동 방식
GKE 서비스의 사용률 기반 부하 분산은 리소스 부하에 더 빠르게 대응하는 프로세스를 통해 GKE에서 실행되는 애플리케이션의 트래픽 관리 방식을 개선합니다. 애플리케이션은 여러 머신에서 여러 인스턴스 (포드)를 사용하여 GKE에서 실행됩니다. 트래픽은 두 가지 주요 방식으로 수신됩니다.
클러스터 외부 (북-남 트래픽): 클러스터가 인터넷 또는 기타 외부 소스로부터 트래픽을 수신합니다. 이를 북-남 트래픽이라고 합니다. GKE 관리형 부하 분산기 (게이트웨이)는 클러스터 외부에서 이 트래픽을 전달합니다.
클러스터 내부 (east-west 트래픽): 클러스터가 애플리케이션의 여러 부분 간, GKE 클러스터 내의 다른 서비스 또는 여러 클러스터 간의 트래픽 흐름을 수신합니다. 이 내부 트래픽 흐름을 동서 트래픽이라고 합니다.
GKE 서비스의 사용률 기반 부하 분산에는 GKE 에이전트가 Cloud Load Balancing 인프라가 트래픽을 지능적으로 분산할 수 있도록 하는 포드 사용률 측정항목을 수집하는 지속적인 프로세스가 포함됩니다. 다음 단계에서는 GKE 서비스의 사용률 기반 부하 분산이 실시간 리소스 사용량을 기반으로 애플리케이션 트래픽을 관리하는 방법을 요약합니다.
애플리케이션 로드 밸런서 (게이트웨이)를 사용하여 GKE 서비스를 설정하면 GKE는 각 영역에 대해 NEG를 자동으로 만들고 애플리케이션의 포드를 이러한 NEG에 할당합니다. 처음에는 트래픽 분산이 기본 상태 확인과 기본 설정을 사용합니다.
CPU와 같은 리소스 사용률을 부하 분산의 핵심 측정항목으로 사용하도록 GKE 서비스를 구성합니다.
특수 GKE 에이전트는 포드 리소스 사용량 (예: CPU)을 지속적으로 모니터링하고 이 데이터를 Cloud Load Balancing 인프라에 정기적으로 전송합니다. 포드에 컨테이너가 여러 개 있는 경우 에이전트는 결합된 사용률을 계산합니다.
Cloud Load Balancing 인프라는 실시간 사용률 데이터를 분석하여 트래픽 분산을 동적으로 조정합니다. 평균 리소스 사용률 (예: CPU 부하) 및 네트워크 지연 시간과 같은 기타 요소를 평가하여 각 포드 그룹 (각 영역별 NEG)으로 전송할 트래픽 양을 결정합니다. 이 프로세스는 부하가 높은 포드에서 부하가 낮은 포드로 트래픽을 자동으로 이동시켜 가장 가까운 리전에서 효율적인 리소스 활용을 보장합니다.
다음 예에서는 사용률 기반 부하 분산이 작동하는 방식을 보여줍니다.
예: 과도하게 사용된 포드 처리
서비스가 동일한 포드 내에서 여러 컨테이너를 실행하면 GKE 측정항목 에이전트가 각 컨테이너의 리소스 사용량을 별도로 보고합니다. 그런 다음 Cloud Load Balancing 인프라에서 사용률의 가중 평균을 계산하여 포드의 총 용량을 구합니다.

그림 1에서는 Cloud 부하 분산이 GKE의 실시간 CPU 사용률 측정항목을 사용하여 여러 영역에 배포된 포드 간 트래픽 분산을 최적화하는 방법을 보여줍니다. 클라이언트 요청은 GKE 게이트웨이를 통해 세 영역에 걸쳐 NEG로 그룹화된 백엔드 포드로 라우팅됩니다.
영역 1에서 포드는 CPU 사용량을 90% 로 보고합니다. 부하 분산기는 과부하를 방지하기 위해 이 포드로의 트래픽을 줄입니다.
영역 2에서 포드는 CPU 60% 로 적당히 사용되고 트래픽을 계속 수신합니다.
3번 영역에서 포드는 CPU 사용량이 40% 로 낮다고 보고하며 트래픽이 더 많이 수신될 수 있습니다. GKE는 메타데이터와 사용률 측정항목을 Cloud Load Balancing 인프라에 지속적으로 전송하며, 이 인프라는 애플리케이션 성능과 가용성을 유지하기 위해 트래픽 라우팅을 지능적으로 조정합니다.
서비스가 최대 CPU 사용률 80%로 구성된 시나리오를 고려해 보세요. 영역 1의 포드가 CPU 사용률이 임곗값을 초과하는 90% 라고 보고하면 다음이 발생합니다.
- Cloud Load Balancing 인프라에서 이러한 과도한 사용을 감지합니다.
- 그런 다음 트래픽을 지능적으로 재분산하고 Zone 1의 포드로 전송되는 트래픽 양을 줄입니다. 이 리밸런싱은 해당 영역의 포드 평균 CPU 사용량이 80% 사용률 기준점 아래로 떨어질 때까지 계속됩니다.
- 영역 1의 포드가 CPU 사용률이 80% 미만이라고 보고하면 Cloud Load Balancing 인프라에서 트래픽 분산을 재평가합니다. 그런 다음 서비스를 지원하는 모든 포드에서 트래픽을 점진적으로 재분산하고 사용률에 따라 트래픽을 효율적으로 계속 분산합니다.