Istio网关内部代理

时间:2020-08-14 14:27:19

标签: istio

我正在寻找一个内部集群代理,在Istio的Gateway文档中,我发现了以下内容:

您还可以使用网关来配置纯内部代理

所以我的问题是我该怎么做?我假设特定的实现只是集群上运行的一个特使。对于网关的清单,大多数情况下都需要选择器,它是入口网关来处理来自集群外部的流量。在我的情况下,选择器应该是什么,因为我需要内部实现?

1 个答案:

答案 0 :(得分:2)

您可以为此使用istio mesh网关。

istio documentation中有一个示例,请看一下粗体。

例如,以下VirtualService将https://uk.bookinfo.com/reviewshttps://eu.bookinfo.com/reviewshttp://uk.bookinfo.com:9080/reviewshttp://eu.bookinfo.com:9080/reviews的流量分成端口上的内部审核服务的两个版本(prod和qa) 9080.此外,包含cookie“ user:dev-123”的请求将被发送到qa版本的特殊端口7777。 同一规则也适用于网格内对“ reviews.prod.svc.cluster.local”服务的请求。此规则适用于端口443、9080。请注意,http://uk.bookinfo.com重定向到https://uk.bookinfo.com(即80重定向到443)。

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: bookinfo-rule
  namespace: bookinfo-namespace
spec:
  hosts:
  - reviews.prod.svc.cluster.local
  - uk.bookinfo.com
  - eu.bookinfo.com
  gateways:
  - some-config-namespace/my-gateway
  - mesh # applies to all the sidecars in the mesh
  http:
  - match:
    - headers:
        cookie:
          exact: "user=dev-123"
    route:
    - destination:
        port:
          number: 7777
        host: reviews.qa.svc.cluster.local
  - match:
    - uri:
        prefix: /reviews/
    route:
    - destination:
        port:
          number: 9080 # can be omitted if it's the only port for reviews
        host: reviews.prod.svc.cluster.local
      weight: 80
    - destination:
        host: reviews.qa.svc.cluster.local
      weight: 20

由于在文档中没有很好地描述,我准备了两个使用nginx pod的示例,看看herehere