【问题标题】:istio virtual service route destination with context path带有上下文路径的 istio 虚拟服务路由目的地
【发布时间】:2021-03-25 17:06:15
【问题描述】:

我有 istio 配置,docker 容器在 tomcat(bitnami jasperreports) 上运行 jasperreports。应用程序本身可以通过 http://IP:8080/jasperserver 的上下文路径访问。

我打算在我的 kubernetes 配置中使用 istio,使用 http 网关和虚拟服务公开服务。除了目标主机和端口号之外,我可以在虚拟服务配置中添加“jasperserver”的上下文路径吗?

这是我当前的虚拟服务配置

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: http-gateway
spec:
  selector:
    istio: ingressgateway # use istio default controller
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: jasper-virtual-services  
spec:
  hosts:
  - "*"
  gateways:
  - http-gateway
  http:
  - match:
    - uri:
        exact: /report
    
    route:
    - destination:
        host: jasperserver.reporting.svc.cluster.local
        port:
          number: 80

【问题讨论】:

    标签: kubernetes istio servicemesh


    【解决方案1】:

    您可能正在寻找rewrites

    类似

      http:
      - match:
        - uri:
            exact: /report
        rewrite:
          uri: /jasperserver
    

    【讨论】:

    • 嗨,我试过了,但它会导致“重定向过多”
    • 尝试添加相同的 uri,但作为前缀而不是确切的。
    • ok.. 让我尝试使用图表.. 我需要在 pod 内添加更多边车,这就是我使用 docker 映像并从头开始构建部署 yaml 的原因.. 将更新调查结果..提前感谢@Jakub
    • @Jakub 你是对的。如果我使用默认的 istio 配置,它可以正常工作,没有任何问题。我的错误是使用 HTTP 类型的负载均衡器添加了另一个入口。非常感谢你
    • @ChristophRaab 抱歉,我错过了您的评论.. 是的,前缀确实解决了问题.. 谢谢大家..
    猜你喜欢
    • 2019-12-21
    • 2020-11-09
    • 2021-12-29
    • 2019-07-06
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 2016-12-01
    • 2020-12-05
    相关资源
    最近更新 更多