관리형 Kubernetes에서 실행되는 Windows 애플리케이션의 네트워킹 관리 및 확장

Last reviewed 2024-08-14 UTC

이 참조 아키텍처는 Cloud Service MeshEnvoy 게이트웨이를 사용하여 Google Kubernetes Engine (GKE)에서 실행되는 Windows 애플리케이션의 네트워크 트래픽을 관리하는 고가용성 및 확장 가능한 솔루션을 제공합니다. 이 페이지에서는 트래픽을 포드 및 오픈소스 xDS 준수 프록시로 라우팅할 수 있는 서비스를 사용하여 해당 네트워크 트래픽을 관리하는 방법을 설명합니다. 이러한 아키텍처를 사용하면 비용을 절감하고 네트워크 관리를 개선할 수 있습니다.

이 문서는 GKE에서 실행되는 Windows 애플리케이션을 설계하고 관리하는 클라우드 설계자, 네트워크 관리자, IT 전문가를 대상으로 합니다.

아키텍처

다음 다이어그램은 Cloud Service Mesh 및 Envoy 게이트웨이를 사용하여 GKE에서 실행되는 Windows 애플리케이션의 네트워킹을 관리하기 위한 아키텍처를 보여줍니다.

데이터는 내부 애플리케이션 부하 분산기와 Envoy 게이트웨이를 통해 흐릅니다.

아키텍처에는 다음 구성요소가 포함됩니다.

  • Windows 및 Linux 노드 풀이 모두 있는 리전별 GKE 클러스터
  • 두 개의 개별 GKE 포드에서 실행되는 두 개의 Windows 애플리케이션
  • Cloud Service Mesh는 각 GKE 포드의 NEG로의 트래픽 경로를 만들고 관리합니다. 각 경로는 특정 scope에 매핑됩니다. 이 scopeCloud Service Mesh 인그레스 게이트웨이를 고유하게 식별합니다.
  • Cloud Service Mesh의 백엔드 서비스에 매핑되는 HTTP 경로
  • GKE 클러스터의 Envoy 게이트웨이 역할을 하는 Envoy 컨테이너 포드입니다.
  • Linux 노드에서 실행되는 Envoy 게이트웨이 게이트웨이는 이러한 애플리케이션에 해당하는 서비스를 통해 Windows 애플리케이션으로 트래픽을 전달하도록 구성됩니다. Envoy는 scope 매개변수를 사용하여 관련 Cloud Service Mesh 서비스의 구성 세부정보를 로드하도록 구성됩니다.
  • SSL 트래픽을 종료하고 모든 외부 수신 트래픽을 Envoy 게이트웨이로 전달하는 내부 애플리케이션 부하 분산기입니다.

사용 제품

이 참조 아키텍처에는 다음과 같은 Google Cloud 및 서드 파티 제품이 사용됩니다.

Google Cloud 제품

  • Cloud Load Balancing: 확장 가능한 고성능 전역 및 리전 부하 분산기 포트폴리오입니다.
  • Google Kubernetes Engine(GKE): Google 인프라를 사용하여 컨테이너화된 애플리케이션을 대규모로 배포 및 운영하는 데 사용할 수 있는 Kubernetes 서비스입니다.
  • Cloud Service Mesh: 온프레미스 또는 Google Cloud에서 안정적인 서비스 메시를 모니터링하고 관리하는 데 도움이 되는 도구 모음입니다.

타사 제품

  • Envoy 게이트웨이: Envoy 프록시를 독립형 또는 Kubernetes 기반 애플리케이션 게이트웨이로 관리합니다.
  • 게이트웨이 API: Kubernetes의 L4 및 L7 라우팅에 중점을 둔 공식 Kubernetes 프로젝트입니다.

사용 사례

이 참조 아키텍처의 주요 사용 사례는 GKE에서 실행되는 Windows 애플리케이션의 네트워크 트래픽을 관리하는 것입니다. 이 아키텍처에는 다음과 같은 이점이 있습니다.

간소화된 네트워크 관리: Cloud Service Mesh 및 Envoy 게이트웨이는 애플리케이션으로의 네트워크 트래픽을 관리하는 중앙 집중식 컨트롤 플레인을 통해 간소화된 네트워크 관리를 제공합니다. 이러한 애플리케이션은 GKE 또는 Compute Engine에서 실행되는 Linux 또는 Windows 애플리케이션일 수 있습니다. 이 간소화된 네트워크 관리 스킴을 사용하면 수동 구성의 필요성이 줄어듭니다.

확장성과 가용성 향상: 변화하는 수요에 맞게 Cloud Service Mesh 및 Envoy 게이트웨이를 사용하여 Linux 및 Windows 애플리케이션을 확장합니다. Envoy 게이트웨이를 사용하여 여러 포드에서 트래픽을 부하 분산하여 애플리케이션에 고가용성을 제공할 수도 있습니다.

보안 개선: Envoy 게이트웨이를 사용하여 SSL 종료, 인증, 비율 제한과 같은 보안 기능을 Linux 및 Windows 애플리케이션에 추가합니다.

비용 절감: Cloud Service Mesh와 Envoy 게이트웨이 모두 Linux 및 Windows 애플리케이션의 네트워크 트래픽을 관리하는 데 드는 비용을 줄이는 데 도움이 됩니다.

설계 고려사항

이 섹션에서는 보안, 안정성, 비용, 효율성에 대한 특정 요구사항을 충족하는 아키텍처를 개발하는 데 도움이 되는 안내를 제공합니다.

보안

  • 보안 네트워킹: 이 아키텍처는 내부 애플리케이션 부하 분산기를 사용하여 Windows 컨테이너로 들어오는 트래픽을 암호화합니다. 전송 중 암호화를 사용하면 데이터 유출을 방지할 수 있습니다.
  • Windows 컨테이너: Windows 컨테이너는 컨테이너화된 애플리케이션에 안전하고 격리된 환경을 제공하는 데 도움이 됩니다.

안정성

  • 부하 분산: 이 아키텍처는 여러 레이어의 Cloud Load Balancing을 사용하여 Envoy 게이트웨이와 Windows 컨테이너에 트래픽을 분산합니다.
  • 내결함성: 이 아키텍처는 단일 장애점이 없는 내결함성입니다. 이러한 설계로 구성요소 중 하나 이상이 실패하더라도 항상 사용할 수 있습니다.
  • 자동 확장: 이 아키텍처는 자동 확장을 사용하여 부하에 따라 Envoy 게이트웨이와 Windows 컨테이너 수를 자동으로 확장합니다. 자동 확장을 사용하면 게이트웨이와 애플리케이션이 성능 문제가 발생하지 않고 트래픽 급증을 처리할 수 있습니다.
  • 모니터링: 이 아키텍처는 Google Cloud Managed Service for Prometheus 및 Cloud Operations를 사용하여 Envoy 게이트웨이와 Windows 컨테이너의 상태를 모니터링합니다. 모니터링을 통해 문제를 조기에 파악하고 애플리케이션이 중단되는 것을 방지할 수 있습니다.

비용 최적화

  • 워크로드에 적합한 인스턴스 유형 선택: 인스턴스 유형을 선택할 때 다음 요소를 고려하세요.
    • 애플리케이션에 필요한 vCPU 수 및 메모리
    • 애플리케이션의 예상 트래픽 부하
    • 사용자가 가용성이 높은 애플리케이션을 사용해야 하는 필요성
  • 자동 확장 사용: 자동 확장을 사용하면 Windows 워크로드를 수직 및 수평으로 자동 확장하여 비용을 절감할 수 있습니다.

    • 수직 확장은 고객 사용량에 따라 컨테이너 요청 및 한도를 조정합니다.

    • 수평 확장은 수요를 충족하기 위해 Kubernetes 포드를 추가하거나 삭제합니다.

  • Cloud Service Mesh 및 Envoy 게이트웨이 사용: Cloud Service Mesh 및 Envoy 게이트웨이를 사용하면 트래픽을 Windows 애플리케이션으로 효율적으로 라우팅하여 비용을 절감할 수 있습니다. 더 효율적인 라우팅을 사용하면 구매해야 하는 대역폭의 양을 줄일 수 있습니다. 또한 이러한 애플리케이션의 성능을 개선하는 데 도움이 될 수 있습니다.

  • 공유 Virtual Private Cloud (VPC) 네트워크 사용: 공유 Virtual Private Cloud 네트워크를 사용하면 여러 프로젝트에서 단일 VPC를 공유할 수 있습니다. 공유하면 만들고 관리해야 하는 VPC 수를 줄여 비용을 절감할 수 있습니다.

운영 효율성

  • 단일 내부 부하 분산기를 사용하는 여러 도메인: 이 아키텍처는 내부 애플리케이션 부하 분산기를 사용하여 SSL 트래픽을 오프로드합니다. 각 HTTPS 대상 프록시는 여러 SSL 인증서(지원되는 최대 개수까지)를 지원하여 서로 다른 도메인의 여러 애플리케이션을 관리할 수 있습니다.
  • 코드형 인프라 (IaC): 인프라를 관리하기 위해 IaC를 사용하여 아키텍처를 배포할 수 있습니다. IaC를 사용하면 인프라가 일관되고 반복 가능해집니다.

배포

이 아키텍처를 배포하려면 관리형 Kubernetes에서 실행되는 Windows 애플리케이션 배포를 참고하세요.

다음 단계

참여자

저자: Eitan Eibschutz | 직원 기술 솔루션 컨설턴트

기타 참여자: