規劃 Azure Kubernetes Service(AKS)的應用程式網路設計

在本文中,您將學習 Azure Kubernetes Service(AKS)的應用程式網路選項。 我們首先提出一個問題,幫助引導你的規劃,然後提供選項、建議和最佳實務。

你想如何存取你的應用程式?

應用程式網路控制了在 Kubernetes Pod 中運行的應用程式如何暴露給叢集外部的用戶端。

應用程式網路選項

在設定應用程式網路時,你可以選擇 具備第 4 層負載平衡的負載平衡服務 ,或 具備第 7 層負載平衡的入口控制器

應用程式網路選項 功能與特色
負載平衡器服務 • 使用 Kubernetes LoadBalancer Service 直接將應用程式暴露在公有或私有 IP 上。
• 支援多個埠口及任何 TCP 或 UDP 流量。
• 每個應用程式至少需要一組獨特的 IP 位址和埠號。
入口控制器 • 將應用程式公開至第 7 層反向 Proxy 後方。
• 僅可用於類 HTTP 流量(HTTP、HTTPS、gRPC)。
• 可共用單一公共 IP 及所有入口定義的埠口,並用於同一入口控制器。
• 受控輸入選項包括:透過應用程式路由附加元件的受控 ingress-nginx、適用於容器的 Azure 應用程式閘道 (建議選項),以及 Istio 輸入閘道

Recommendations

對於 非 HTTP 流量,我們建議使用 Load Balancer Service 搭配第 4 層負載平衡。 此方法提供直接存取您的應用程式,並支援多種協定。 對於 類似 HTTP 的流量,我們建議使用 Ingress 控制器,並具備第 7 層負載平衡功能。 這種方式能利用進階路由功能,為多個應用程式共用單一公共 IP。