管理及調整在代管 Kubernetes 上執行的 Windows 應用程式網路

Last reviewed 2024-08-14 UTC

這項參考架構提供高可用性且可擴充的解決方案,可使用 Cloud Service MeshEnvoy 閘道,管理在 Google Kubernetes Engine (GKE) 上執行的 Windows 應用程式網路流量。本文說明如何使用可將流量路由至 Pod 和相容於 xDS 的開放原始碼 Proxy 的服務,管理該網路流量。使用這類架構有助於降低成本及提升網路管理效率。

本文適用對象為雲端架構師、網路管理員和 IT 專業人員,他們負責設計及管理在 GKE 上執行的 Windows 應用程式。

架構

下圖顯示的架構,是使用 Cloud Service Mesh 和 Envoy 閘道,管理在 GKE 上執行的 Windows 應用程式網路:

資料會流經內部應用程式負載平衡器和 Envoy 閘道。

此架構包含下列元件:

  • 具有 Windows 和 Linux 節點集區的區域性 GKE 叢集。
  • 在兩個不同的 GKE Pod 中執行的兩個 Windows 應用程式。
  • Cloud Service Mesh 會為每個 GKE Pod 建立及管理 NEG 的流量路徑。每條路徑都會對應到特定 scopescope 可做為 Cloud Service Mesh 入口閘道的專屬 ID
  • 對應至 Cloud Service Mesh 後端服務的 HTTP 路由。
  • Envoy 容器 Pod,可做為 GKE 叢集的 Envoy 閘道。
  • 在 Linux 節點上執行的 Envoy 閘道。閘道會設定為透過對應這些應用程式的服務,將流量導向 Windows 應用程式。Envoy 已設定為使用 scope 參數,載入相關 Cloud Service Mesh 服務的設定詳細資料。
  • 內部應用程式負載平衡器,可終止 SSL 流量,並將所有外部連入流量導向 Envoy 閘道。

使用的產品

這項參考架構使用下列 Google Cloud 和第三方產品:

Google Cloud 產品

第三方產品

  • Envoy Gateway: 將 Envoy Proxy 管理為獨立或以 Kubernetes 為基礎的應用程式閘道。
  • Gateway API: Kubernetes 官方專案,著重於 Kubernetes 中的 L4 和 L7 路由。

用途

這項參考架構的主要用途是管理在 GKE 上執行的 Windows 應用程式網路流量。這項架構具有下列優點:

簡化網路管理:Cloud Service Mesh 和 Envoy 閘道提供集中式控制層,可管理應用程式的網路流量,進而簡化網路管理作業。這些應用程式可以是 Linux 或 Windows 應用程式,在 GKE 或 Compute Engine 上執行。使用這項簡化的網路管理機制,可減少手動設定的需求。

提升擴充性和可用性:為滿足不斷變化的需求,請使用 Cloud Service Mesh 和 Envoy 閘道,擴充 Linux 和 Windows 應用程式。您也可以使用 Envoy 閘道,在多個 Pod 之間平衡負載流量,為應用程式提供高可用性。

提升安全性:使用 Envoy 閘道為 Linux 和 Windows 應用程式新增安全防護功能,例如 SSL 終止、驗證和速率限制。

降低成本: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 工作負載,協助您節省費用。

  • 使用 Cloud Service Mesh 和 Envoy 閘道: Cloud Service Mesh 和 Envoy 閘道可有效將流量轉送至 Windows 應用程式,協助您節省費用。使用更有效率的路由可以減少必須購買的頻寬量。還能提升這些應用程式的效能。

  • 使用共用虛擬私有雲 (VPC) 網路:共用虛擬私有雲網路可讓您在多個專案中共用單一 VPC。共用可減少您需要建立及管理的 VPC 數量,進而節省費用。

提升作業效率

  • 使用單一內部負載平衡器處理多個網域:此架構使用內部應用程式負載平衡器卸載 SSL 流量。每個 HTTPS 目標 Proxy 最多可支援支援上限的 SSL 憑證,以便管理不同網域的多個應用程式。
  • 基礎架構即程式碼 (IaC):如要管理基礎架構,可以使用 IaC 部署架構。IaC 可確保基礎架構一致且可重複使用。

部署作業

如要部署這個架構,請參閱「部署在代管 Kubernetes 上執行的 Windows 應用程式」。

後續步驟

貢獻者

作者:Eitan Eibschutz | 員工技術解決方案顧問

其他貢獻者: