使用Ingress-sentinel實現(xiàn)流控
ACK提供了Ingress-sentinel流控功能,通過Ingress-sentinel流控功能可以快速接入到AHAS中。當(dāng)有請求流量時,您可以在AHAS控制臺中查看Nginx網(wǎng)關(guān)請求的實時QPS和RT等數(shù)據(jù)。本文介紹如何使用Ingress-sentinel功能實現(xiàn)流控。
前提條件
請確保ACK集群中的Ingress Controller運行正常,且不低于0.44.0版本。
背景信息
應(yīng)用高可用服務(wù)AHAS(Application High Availability Service)提供了應(yīng)用架構(gòu)探測感知,故障注入式高可用能力評測和流控降級高可用防護(hù)三大核心能力,其中針對Nginx的流控降級高可用防護(hù)功能已集成到ACK提供的Ingress-Nginx-Controller中,您可用根據(jù)實際需求開啟該功能,查看流控數(shù)據(jù)。
使用限制
開啟Ingress-sentinel流控功能,會消耗一定的系統(tǒng)資源。您使用的機(jī)器需要符合一定的配置,以下為配置說明:
最低配置:CPU為1000m Core,內(nèi)存為2048 MiB。
建議配置:CPU為4000m Core及以上,內(nèi)存為8192 MiB及以上。
開啟Ingress-sentinel流控功能
在控制臺左側(cè)導(dǎo)航欄,單擊集群。
在集群列表頁面,單擊目標(biāo)集群名稱或者目標(biāo)集群右側(cè)操作列下的詳情。
在集群管理頁左側(cè)導(dǎo)航欄,選擇 。
在配置項頁面名稱搜索框中搜索nginx-configuration,找到nginx-configuration,然后單擊nginx-configuration操作列的編輯。
自定義應(yīng)用名稱。
在編輯面板單擊添加,設(shè)置名稱為sentinel-params ,值為--app=demo-k8s-2020。
說明--app=demo-k8s-2020字段中demo-k8s-2020為應(yīng)用名稱,您可以根據(jù)實際需求替換應(yīng)用名稱。
可選:如果您的集群所在地域不屬于深圳、北京、上海、張家口、杭州,則還需要配置證書。
單擊添加,設(shè)置名稱為sentinel-params ,值為--app=demo-k8s --license=xxx。
說明關(guān)于獲取License的更多信息,請參見查看License。
可選:如果您希望接收到超過流控配置上限的請求時,系統(tǒng)能夠返回HTTP 429錯誤碼(表示請求數(shù)過多)。則您可以配置流控HTTP返回碼。
單擊添加,設(shè)置名稱為sentinel-block-action,值為=429。
說明如果您想要自定義HTTP錯誤碼,可以根據(jù)實際需求修改429。
開啟Ingress-sentinel流控功能。
說明接入Ingress-sentinel流控功能后默認(rèn)不會觸發(fā)流控,只有配置開啟流控規(guī)則,并且請求流量超過流控規(guī)則限制后才會觸發(fā)流控。
單擊添加,設(shè)置名稱為use-sentinel,值為true。然后單擊確定。
配置流控規(guī)則
登錄AHAS控制臺,在控制臺左側(cè)導(dǎo)航欄選擇 ,單擊目標(biāo)應(yīng)用卡片,可以看到應(yīng)用名稱對應(yīng)的流控監(jiān)控窗口。具體操作請參見配置流控規(guī)則、配置隔離規(guī)則或配置熔斷規(guī)則。
如果您需要配置更詳細(xì)的流控規(guī)則,請參見請求分組管理和配置流控規(guī)則。規(guī)則配置完成后,您可以在應(yīng)用概覽頁面實時查看流控指標(biāo)。