Kubernetes 如何使用istio入口网关执行地理ip黑名单?

Kubernetes 如何使用istio入口网关执行地理ip黑名单?,kubernetes,istio,Kubernetes,Istio,我在阿里云使用Kubernetes服务,Kubernetes服务器版本为v1.14.8-aliyun.1,而istio版本为1.2.7 从这个istio官方教程()中,我学习了如何从istio入口网关阻止单个ip。我在istio系统命名空间中应用了这些规则、实例和处理程序,我的公共ip被成功阻止 然后我尝试使用类似的概念来进行地理ip阻塞。首先,我从MaxMind提供的GeoLite2数据库中获取国家ip列表,然后将这些ip解析为多个处理程序文件(每个文件有3000个ip列表,因为kuberne

我在阿里云使用Kubernetes服务,Kubernetes服务器版本为v1.14.8-aliyun.1,而istio版本为1.2.7

从这个istio官方教程()中,我学习了如何从istio入口网关阻止单个ip。我在istio系统命名空间中应用了这些规则、实例和处理程序,我的公共ip被成功阻止

然后我尝试使用类似的概念来进行地理ip阻塞。首先,我从MaxMind提供的GeoLite2数据库中获取国家ip列表,然后将这些ip解析为多个处理程序文件(每个文件有3000个ip列表,因为kubernetes中有资源大小限制)。最后让我们假设我想阻止我们的IP,我将有大约500个处理程序
文件从25MB US-IP.txt生成。现在,当我将这些资源应用到kubernetes中时,当我观察到Istio Mixerlog时,我可以看到以下错误:

Error receiving MCP response: rpc error: code = ResourceExhausted desc = grpc: received message larger than max (4623689 vs. 4194304)
我试图将Istio混频器MaxMessageSize设置为30MB,但仍然出现此错误。看起来这4MB是golang grpc库的限制

谁能告诉我如何使用istio入口网关进行地理ip阻塞?复制此问题的步骤包含在中


提前感谢。

请提供用于调试此问题的命令,以及如何将配置应用到混音器中。您是如何部署Istio-配置的?此外,请提供群集状态的信息,所有Istio组件是否运行正常?@Hanx我已经在中包含了重现此问题的资源和步骤。我还在github repo中包含了群集状态和Istio组件运行状况的信息,如png。请注意,istio组件运行状况是在混音器日志仍显示上述错误时截屏的。因为我使用的是阿里云Kubernetes服务,所以istio是使用阿里巴巴helm Repository提供的helm图表部署的,其版本为1.2.7