Iris
Iris
感觉跟我的路由怎么创建的没有关系,就是一个特别简单的路由创建: 
我们k8s是1.17.5, > 哦 是不是因为k8s的ingress版本是extensions/v1beta1,这个版本不支持resource backend,现在console默认用的resource backend 看了一下,1.17.5的ingress只能用service backend啊,这个问题,除了升级k8s版本,有没有别的办法支持使用console呀?
就简单配置了一个路由和重定向规则,访问不通。 在gateway中查看cluster和endpoint情况:   在controller中查看serviceentry和vs都事正常的:  在controller和gateway中没看到什么异常,在gateway中只看到循环在报下面的wariwarning: 
> 你这个是建了一个固定IP的服务,配了域名? 没有配置域名 > 控制台下发的吗?mcpbridge看下 是控制台下发的,只有一个default的mcpbridge,里面是eureka注册中心的配置
通过在controller中执行`curl http://localhost:15014/debug/configz`获取configz,查找gateway中循环报warning的域名信息,发现有一个该域名是某一个服务的endpoints地址,在console的服务列表中搜索服务也能够查到:   该服务在注册中心中查不到了,已经下掉了,于是将controller重启,gateway中不再刷上面的warning了,到gateway中查路由不生效的服务对应的endpoints也能查到了,再次访问服务就正常了。 不知道是不是因为存在注册地址是路由的服务导致的该问题,明天尝试复现一下。
今天该服务再次注册到了注册中心,重启了controller和gateway后复现了该问题,但是发现并不是所有的EDS都下发失败,部分是好的,部分没有,看不出什么规律,下面是在gateway中查看cluster看到的: 
看起来并不是由于修改注册中心地址的操作引起的报错,今天发现另一个测试环境里没有进行上面的操作,也出现了该容器重启,容器里报了上面的错误
> @lcfang 可以在你的环境下debug一下看看吗,比如在之前判断一下指针是否为空?以及GetApplication的地方也加一些日志 有个问题就是没有办法稳定复现,这个容器有debug日志级别调整开关吗?
基本定位到:1、由于服务数量多,eureka服务订阅会定期全量更新,一旦有服务或者配置更新,也会触发配置全量下发;2、Prometheus调用gateway state接口获取监控数据,会导致CPU飙升; controller对接eureka配置按需更新的特性下个版本能加吗? @johnlanni
后来发现主要是Prometheus进行数据采集导致的 --- Later I found out that it was mainly caused by Prometheus for data collection