开启应用治理后,在应用路由中添加注解 nginx.ingress.kubernetes.io/service-upstream: true就报502,删除这个注释就可以访问,但是静态资源文件还是报404

    zackzhang 在创建应用的使用选择开启应用治理了,里面的服务都是自动注入的把,容器组里面好像都有istio注入

      cyrpg520 1. kubectl -n test get pod -oyaml看下有没有注入成功

      1. 你要先保证你的静态资源在全部没有注入sidecar时是访问正常的。做法就是把这个namespace加入豁免 kubectl label ns test istio-injection=disabled --overwrite;然后重建下pod,``kubectl -n test rollout restart deployments `,网关这个地方也要统一对应下。

        zackzhang 我把网关的应用治理关掉后,静态资源都是可以访问的。开启后,应用路由注解nginx.ingress.kubernetes.io/service-upstream: true 就报502,不加这个注解就可以访问,但是静态资源无法访问

          cyrpg520

          应用路由加上这个注解:

          nginx.ingress.kubernetes.io/service-upstream: xxxxx # 如productpage.test.svc.cluster.local

            zackzhang

            加了这个注解后,可以访问服务了,但是静态资源还是报404。流量治理无法正常工作

            我后台部署的官方示例应用是没有问题的,可以访问,流量治理也没问题。我按官方指导部署的,感觉有很多坑::

              cyrpg520 你是参考的哪个文档,这个应用是如何部署出来的?
              静态资源的PATH做过rewrite?

              cyrpg520 感觉是你的应用有问题

              kubectl -n sany get po

                zackzhang 应该是我容器镜像的问题,我用nginx镜像作为服务组件就没有问题,用我自己的就有问题,我的镜像同时启动了80和9000两个端口,不知道是端口冲突了还是不能同时启动两个,非常感谢你的热心解答