我们现在切换到 istio ,我需要将我的应用暴露给外部
在该应用中,我只有3条路线

我们有gwhost,但是以某种方式我无法访问我的应用程序,知道我在做什么错吗?
vs-yaml
有没有办法公开所有路由,或者我应该明确定义它们,如果这样的话,它与routesmatch有点混淆吗?

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: bher-virtualservice
  namespace: ba-trail
spec:
  gateways:
    - webb-system.svc.cluster.local
  hosts:
    - trialio.cloud.str
  http:
    - route:
        - destination:
            host: bsa
            port:
              number: 5000

最佳答案


我建议看一下有关virtual services的istio文档,那里对此有很好的描述。

让我们从头开始,您拥有虚拟服务和网关,它们应该与您的应用程序位于同一 namespace 中,或者您需要在两者中都指定它们。
据我所知您的虚拟服务不正确,我准备了适合您的示例。看下面的例子。
网关

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: bher-gateway
  namespace: ba-trail 👈
spec:
  selector:
    istio: ingressgateway # use the default IngressGateway
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "trialio.cloud.str"
我看到您已经部署了gateway,如果它与虚拟服务不在同一个命名空间中,则应像下面的示例一样添加它。
检查spec.gateways部分
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: my-gateway
namespace: some-config-namespace
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: bookinfo-Mongo
  namespace: bookinfo-namespace
spec:
  gateways:
  - some-config-namespace/my-gateway # can omit the namespace if gateway is in same
                                       namespace as virtual service.

虚拟服务
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: bher-virtualservice
  namespace: ba-trail 👈
spec:
  gateways:
    - bher-gateway 👈  // name of your gateway
  hosts:
    - trialio.cloud.str
  http:
    - match:
      - uri:
          prefix: "/"
      - uri:
          prefix: "/login"
      - uri:
          prefix: "/static"
      - uri:
          regex: '^.*\.(ico|png|jpg)$'
      route:
      - destination:
          host: bsa.ba-trail.svc.cluster.local 👈  // name_of_your service.namespace.svc.cluster.local
          port:
            number: 5000
看看这个example
http:
  - match:
    - uri:
        exact: /
    - uri:
        exact: /callback
    - uri:
        prefix: /static
    - uri:
        regex: '^.*\.(ico|png|jpg)$'
    route:
    - destination:
        host: frontend
        port:
          number: 80

希望您觉得这个有帮助。如果您有任何问题,请在评论中告诉我。

08-03 13:08