Nginx為目前比較流行的高性能開源服務器,Ingress則為實際的K8s流量入口。Ingress/Nginx防護作為應用側的上游,可以提前對業務流量做控制,從而有效地保證下游服務不會因流量激增而導致系統癱瘓。
功能特性
Ingress/Nginx防護提供的主要功能如下:
功能 | 描述 |
請求分組管理 | 支持請求自定義分組。用戶可以以該分組為粒度對其進行流量控制,并在AHAS控制臺對其進行全方位的監控。請求分組通過域名加路徑組合的方式定義,支持精確、前后綴、正則三種匹配模式,同時路徑支持rewrite開關。 |
實時監控 | Ingress/Nginx防護提供實時秒級監控能力,您接入Ingress/Nginx防護后,可以通過快速訪問AHAS控制臺,查看實時的接口以及自定義請求分組的QPS、RT等信息。 |
集群流控 | 通過設定集群流量總閾值,實現以服務或API粒度的控制流量的閾值,因此您無需關注集群機器的物理差異、負載均衡等因素。 |
自定義流控行為 | 當流量被Ingress/Nginx防護阻擋時,用戶可以在前端配置自定義返回碼和返回文本內容。 |
應用場景
秒殺購物
接入Ingress/Nginx防護后,通過提前對自定義請求分組的流量限制,可以有效地保證系統在峰值時不會因流量激增而導致系統癱瘓。
慢調用阻塞
下游的服務一旦出現慢調用頻繁,比如SQL查詢、異常的第三方調用等,都會占用網關側的系統資源,從而連累下游其它正常服務。Ingress/Nginx防護可以有效地限制慢調用的頻次來保護整個系統不被過多的慢調用拖垮。
精細化流控
網關側做為總流量的入口,業務請求雜亂并且難以歸類。Ingress/Nginx防護提供了自定義請求分組的功能,通過域名加路徑組合的方式,同時支持精確、前后綴、正則三種匹配模型,以便用戶能夠更好地定義請求分組,并進一步對其做流量控制。
業務防刷
通過指定請求參數,比如用戶ID、客戶端IP等,并設定一個閾值,可以有效地防止單屬性流量過度頻繁的訪問網關側服務,以保證業務的健壯性。
版本支持
使用Ingress/Nginx防護所需版本要求如下:
操作系統:支持主流Linux發行版本,包括CentOS、Ubuntu、Alpine等。
Nginx版本:要求Nginx版本在1.10.3以上(不包括1.10.3)。若您當前使用的是低版本的Nginx,建議您升級后再使用。
Nginx生態:支持主流的Nginx衍生產品,包括OpenRestry、Tengine、Kong、Apisix等。
接入方式
Ingress和Nginx如何接入流量防護的具體操作,請參見將Nginx接入流量防護和使用Ingress-sentinel實現流控。