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

Last reviewed 2024-08-14 UTC

這項參考架構提供高可用性且可擴充的解決方案,可使用 Cloud Service Mesh 和 Envoy 閘道,管理在 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 的流量路徑。每條路線都會對應到特定 scope。scope 可做為 Cloud Service Mesh Ingress 閘道的專屬 ID。
  • 對應至 Cloud Service Mesh 後端服務的 HTTP 路由。
  • Envoy 容器 Pod,做為 GKE 叢集的 Envoy Gateway。
  • 在 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 | 員工技術解決方案顧問

其他貢獻者: