1

是否可以使用下图所述的路由规则进行流量路由?流量路由需要在流量进入集群后立即发生。

在此处输入图像描述

我们一直在摆弄它们,但是一旦我们有两个路由规则并在其中一个规则中使用了 uri 正则表达式,我们总是会碰壁。

我们的想法是像这样配置 istio ingress

# Ingress
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: gateway
  annotations:
    kubernetes.io/ingress.class: "istio"
spec:
  backend:
    serviceName: frontend
    servicePort: 8080

然后根据 uri 标头配置拆分流量的路由规则。以下是我们如何配置产品路由规则的示例:

apiVersion: config.istio.io/v1alpha2
kind: RouteRule
metadata:
  name: products-rule
spec:
  destination:
    name: frontend
  precedence: 2
  match:
    request:
      headers:
        uri:
          regex: "^/(?:.*?)/?products(?:/.*)?$"
  route:
  - labels:
      fe-app: products

istio 可以进行这种设置吗?

4

1 回答 1

1

更新:似乎 Kubernetes Ingress 不支持正则表达式,请参阅https://github.com/kubernetes/ingress-nginx/issues/1360所以下面的答案是行不通的。

我将创建三个不同的服务:productssettings​​ 并customers使用 Kubernetes Ingress fanout。我会使用你的正则表达式作为路径。我会先用一个普通的 Kubernetes Ingress 尝试它,没有kubernetes.io/ingress.class: "istio"注释。如果它可以工作,我会添加 Istio 注释并验证它是否也可以作为 Istio Ingress 工作。

于 2018-03-09T17:08:37.677 回答