微軟發佈了一篇Azure應用程式閘道容器與應用程式閘道入口控制器的比較
Azure應用程式閘道容器是一種新的應用程式(第7層)負載平衡和動態流量管理產品,適用於在Kubernetes叢集中運行的工作負載。它是Azure應用程式負載平衡組合的延伸,也是應用程式閘道產品系列下的一種新服務。目前,此服務處於公開預覽階段。
Azure應用程式閘道容器是應用程式閘道入口控制器(AGIC)的演進。AGIC是一種Kubernetes應用程式,使Azure Kubernetes服務(AKS)客戶能夠使用Azure原生的應用程式閘道應用程式負載平衡器。AGIC會持續更新應用程式閘道,以便將叢集上通過入口資源指定的資源暴露出來。Azure應用程式閘道容器也會將您的應用程式閘道資源與您的Kubernetes服務同步,但具有更豐富的功能集。
AGIC和Azure應用程式閘道容器之間的一個主要差異是原生支援Kubernetes Gateway API。Gateway API是在2021年正式宣佈的,作為傳統Kubernetes入口的演進。Azure應用程式閘道容器仍然支援入口資源,但也允許客戶充分利用功能豐富的Gateway API,這意味著客戶可以使用Azure原生和Kubernetes原生路由來執行一些操作,例如多站點託管或端到端TLS,這些操作否則需要使用NGINX或Traefik等入口控制器的複雜註釋。
Azure應用程式閘道容器的架構與AGIC非常相似。部署Azure應用程式閘道容器時,您需要在叢集上安裝ALB控制器。目前與AGIC不同的是,ALB控制器只能使用HELM安裝。與AGIC類似,唯一支援的網路外掛是Azure CNI。雖然架構相似,但使用Gateway API時,部署和管理Azure應用程式閘道容器時還有一些其他組件需要提供和管理。
Azure應用程式閘道容器在發佈時提供了一些全新的功能,例如:
- 流量分割/加權循環
- 與後端目標的雙向驗證
- 對入口和Gateway API的Kubernetes支援
- 靈活的部署策略
- 提高性能,提供近實時更新以添加或移動pod、路由和探針
Azure應用程式閘道容器是一種新穎且具有彈性和可擴展性的AKS叢集入口,包括新的數據平面和控制平面以及新的ARM API集,與現有的應用程式閘道不同。這些API與目前應用程式閘道的實現不同。Azure應用程式閘道容器位於AKS叢集數據平面之外,負責入口。該服務由運行在AKS叢集內部並遵循Kubernetes Gateway API的ALB控制器組件管理。
詳情請看:
Application gateway for Containers vs Application Gateway Ingress Controller - What's changed?