使用Ingress-sentinel实现流控
ACK提供了Ingress-sentinel流控功能,通过Ingress-sentinel流控功能可以快速接入到AHAS中。当有请求流量时,您可以在AHAS控制台中查看Nginx网关请求的实时QPS和RT等数据。本文介绍如何使用Ingress-sentinel功能实现流控。
前提条件
请确保ACK集群中的Ingress Controller运行正常,且不低于0.44.0版本。
背景信息
应用高可用服务AHAS(Application High Availability Service)提供了应用架构探测感知,故障注入式高可用能力评测和流控降级高可用防护三大核心能力,其中针对Nginx的流控降级高可用防护功能已集成到ACK提供的Ingress-Nginx-Controller中,您可用根据实际需求开启该功能,查看流控数据。
使用限制
开启Ingress-sentinel流控功能,会消耗一定的系统资源。您使用的机器需要符合一定的配置,以下为配置说明:
最低配置:CPU为1000m Core,内存为2048 MiB。
建议配置:CPU为4000m Core及以上,内存为8192 MiB及以上。
开启Ingress-sentinel流控功能
登录容器服务管理控制台。
在控制台左侧导航栏,单击集群。
在集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情。
在集群管理页左侧导航栏,选择 。
在配置项页面名称搜索框中搜索nginx-configuration,找到nginx-configuration,然后单击nginx-configuration操作列的编辑。
自定义应用名称。
在编辑面板单击添加,设置名称为sentinel-params ,值为--app=demo-k8s-2020。
说明--app=demo-k8s-2020字段中demo-k8s-2020为应用名称,您可以根据实际需求替换应用名称。
可选:如果您的集群所在地域不属于深圳、北京、上海、张家口、杭州,则还需要配置证书。
单击添加,设置名称为sentinel-params ,值为--app=demo-k8s --license=xxx。
说明关于获取License的更多信息,请参见查看License。
可选:如果您希望接收到超过流控配置上限的请求时,系统能够返回HTTP 429错误码(表示请求数过多)。则您可以配置流控HTTP返回码。
单击添加,设置名称为sentinel-block-action,值为=429。
说明如果您想要自定义HTTP错误码,可以根据实际需求修改429。
开启Ingress-sentinel流控功能。
说明接入Ingress-sentinel流控功能后默认不会触发流控,只有配置开启流控规则,并且请求流量超过流控规则限制后才会触发流控。
单击添加,设置名称为use-sentinel,值为true。然后单击确定。