赞
踩
istio 流量主要分为三种:入向流量(ingress)、mesh 流量(envoy)和出向流量(egress)
和网关相关的是:入向流量(IngressGateway)和出向流量(EgreeGateway)
一般研究 IngressGateway,EgreeGateway 使用的较少
以下 gw 的 yaml 表示:通过标签选中 ingressgateway,并监听 80 端口,请求域名为 bookinfo.bianmc.com
的 http 请求
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: bookinfo-gateway
spec:
selector:
istio: ingressgateway // 这筛选的就是IngressGateway pod
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "bookinfo.bianmc.com"
IngressGateway这其实对应的就是Envoy Listener
以下 vs 的 yaml 表示:与 bookinfo-gateway
绑定,并监听来自该网关的请求域名为 bookinfo.bianmc.com
的 http 请求,如果端口号为80同时请求路径为 productpage
,则将请求转发到名为 productpage
的 service 的9080端口上
apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: bookinfo spec: hosts: - "bookinfo.bianmc.com" gateways: - bookinfo-gateway // 指定gateways 转发规则,要与这个listener关联 http: - match: - port: 80 // 默认,可以不写 uri: exact: /productpage route: - destination: host: productpage port: number: 9080
VirtualService 对应的是Envoy中的路由 route 转发规则
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。