マネージド Kubernetes で実行される Windows アプリケーションのネットワークを管理、スケーリングする

Last reviewed 2024-08-14 UTC

このリファレンス アーキテクチャでは、Cloud Service MeshEnvoy ゲートウェイを使用して、Google Kubernetes Engine(GKE)で実行される Windows アプリケーションのネットワーク トラフィックを管理する、高可用性でスケーラブルなソリューションを提供します。このページでは、Pod とオープンソースの xDS 準拠プロキシにトラフィックを転送できるサービスを使用して、そのネットワーク トラフィックを管理する方法について説明します。このようなアーキテクチャを使用すると、コストを削減し、ネットワーク管理を改善できます。

このドキュメントは、GKE で実行される Windows アプリケーションの設計と管理を担当するクラウド アーキテクト、ネットワーク管理者、IT 担当者を対象としています。

アーキテクチャ

次の図は、Cloud Service Mesh と Envoy ゲートウェイを使用して GKE で実行されている Windows アプリケーションのネットワーキングを管理するアーキテクチャを示しています。

データは、内部アプリケーション ロードバランサと Envoy ゲートウェイを通過します。

このアーキテクチャは、次のコンポーネントで構成されます。

  • Windows ノードプールと Linux ノードプールの両方があるリージョン GKE クラスタ。
  • 2 つの GKE Pod で実行されている 2 つの Windows アプリケーション。
  • Cloud Service Mesh は、各 GKE Pod の NEG へのトラフィック ルートを作成して管理します。各ルートは特定の scope にマッピングされます。この scope は、Cloud Service Mesh Ingress ゲートウェイを一意に識別します。
  • Cloud Service Mesh のバックエンド サービスにマッピングされる HTTP ルート。
  • GKE クラスタへの Envoy ゲートウェイとして機能する Envoy コンテナ Pod。
  • 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 ベースのアプリケーション ゲートウェイとして管理します。
  • Gateway API: Kubernetes の L4 と L7 のルーティングに焦点を当てた公式の Kubernetes プロジェクト。

ユースケース

このリファレンス アーキテクチャの主なユースケースは、GKE で実行される Windows アプリケーションのネットワーク トラフィックの管理です。このアーキテクチャには次のような利点があります。

ネットワーク管理の簡素化: Cloud Service Mesh と Envoy ゲートウェイは、アプリケーションへのネットワーク トラフィックを管理する一元化されたコントロール プレーンにより、ネットワーク管理を簡素化します。これらのアプリケーションは、GKE または Compute Engine で実行される Linux または Windows アプリケーションです。この簡素化されたネットワーク管理方法により、手動構成の必要性が軽減されます。

スケーラビリティと可用性の向上: 変化する需要に対応するため、Cloud Service Mesh と Envoy ゲートウェイを使用して Linux アプリケーションと Windows アプリケーションをスケーリングします。Envoy ゲートウェイを使用して、複数の Pod 間でトラフィックをロードバランスすることで、アプリケーションの高可用性を実現することもできます。

セキュリティの強化: Envoy ゲートウェイにより、SSL 終端、認証、レート制限などのセキュリティ機能を Linux アプリケーションと Windows アプリケーションに追加します。

コスト削減: Cloud Service Mesh と Envoy ゲートウェイの両方を使用すると、Linux アプリケーションと Windows アプリケーションのネットワーク トラフィックの管理にかかる費用を削減できます。

設計上の考慮事項

このセクションでは、セキュリティ、信頼性、費用、効率に関する特定の要件を満たすアーキテクチャを開発する際に役立つガイダンスを提供します。

セキュリティ

  • セキュアなネットワーキング: このアーキテクチャでは、内部アプリケーション ロードバランサを使用して、Windows コンテナへの着信トラフィックを暗号化します。転送中の暗号化は、データ漏洩の防止に役立ちます。
  • Windows コンテナ: Windows コンテナは、コンテナ化されたアプリケーションに安全で分離された環境を提供します。

信頼性

  • ロード バランシング: このアーキテクチャでは、Cloud Load Balancing の複数のレイヤを使用して、Envoy ゲートウェイと Windows コンテナにトラフィックを分散します。
  • フォールト トレランス: このアーキテクチャはフォールト トレラントで、単一障害点がありません。この設計により、1 つ以上のコンポーネントに障害が発生しても、常に利用可能な状態を維持できます。
  • 自動スケーリング: このアーキテクチャでは、自動スケーリングを使用し、負荷に応じて Envoy ゲートウェイと Windows コンテナの数を自動的にスケーリングします。自動スケーリングにより、ゲートウェイとアプリケーションはパフォーマンスを低下させることなく、トラフィックの急増に対応できます。
  • モニタリング: このアーキテクチャでは、Google Cloud Managed Service for Prometheus と Cloud Operations を使用して、Envoy ゲートウェイと Windows コンテナの健全性をモニタリングします。モニタリングを行うことで、問題を早期に特定し、アプリケーションの中断を防ぐことができます。

費用の最適化

  • ワークロードに適したインスタンス タイプを選択する: インスタンス タイプを選択する際は、次の要素を考慮してください。
    • アプリケーションに必要な vCPU とメモリの数
    • アプリケーションで予想されるトラフィック負荷
    • ユーザーが高可用性アプリケーションを必要としているかどうか
  • 自動スケーリングを使用する: 自動スケーリングを使用すると、Windows ワークロードを垂直方向と水平方向に自動的にスケーリングし、費用を節約できます。

    • 垂直スケーリングでは、お客様の使用状況に応じてコンテナ リクエストと上限を調整します。

    • 水平スケーリングでは、需要に応じて Kubernetes Pod を追加または削除します。

  • Cloud Service Mesh と Envoy ゲートウェイを使用する: Cloud Service Mesh と Envoy ゲートウェイを使用すると、Windows アプリケーションにトラフィックを効率的に転送することで、費用を節約できます。より効率的なルーティングを使用すると、購入する帯域幅の量を減らすことができます。また、これらのアプリのパフォーマンスを改善することもできます。

  • 共有 Virtual Private Cloud(VPC)ネットワークを使用する: 共有 Virtual Private Cloud ネットワークを使用すると、複数のプロジェクト間で単一の VPC を共有できます。共有により、作成して管理する必要がある VPC の数を減らし、コストを削減できます。

運用効率

  • 単一の内部ロードバランサを使用する複数のドメイン: このアーキテクチャでは、内部アプリケーション ロードバランサを使用して SSL トラフィックをオフロードします。各 HTTPS ターゲット プロキシは、複数の SSL 証明書(サポートされている最大数まで)をサポートし、異なるドメインで複数のアプリケーションを管理できます。
  • Infrastructure as Code(IaC): インフラストラクチャの管理に、IaC を使用してアーキテクチャをデプロイできます。IaC により、インフラストラクチャの一貫性と再現性を保証できます。

デプロイ

このアーキテクチャをデプロイするには、マネージド Kubernetes で実行されている Windows アプリケーションをデプロイするをご覧ください。

次のステップ

寄稿者

作成者: Eitan Eibschutz | スタッフ テクニカル ソリューション コンサルタント

その他の寄稿者: