码迷,mamicode.com
首页 > Web开发 > 详细

第七章 HTTP流量管理(一) gateway

时间:2019-02-25 22:03:19      阅读:300      评论:0      收藏:0      [点我收藏+]

标签:sys   protoc   接受   sga   访问   font   name   bsp   out   

 

 Gateway: istio的一种资源类型,Istio Gateway告诉k8s的istio-ingressgateway pods可以打开哪些主机和端口(如下的80是 ingressgateway pod容器中的端口)

                   gateway是定义了哪些的hosts可以到达ingress pod。

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: galaxygateway
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
      - "*"

这就在Istio的ingress网关上开辟了一个端口,但是只是接受访问和流量输入,当流量到达这个网关时,它还不知道发送到哪里去。

 

现在我们的网关已准备好接收流量,我们必须告知它将收到的流量发往何处,Istio使用名为“VirtualService”类型配置流量发往何处。
将一个网关列表配置给VirtualService,然后Istio使用VirtualService配置中定义的路由再配置那些网关.

URI路径前缀匹配/env的将发往指定目标.(注意: 如果有多个virtualservice文件,后面的会覆盖前面的,所以要把所有的路由信息都配置到一个virtualservice)

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: flaskapp
spec:
  hosts:
  - "*"
  gateways:
  - galaxygateway 
  http:
  - match:
    - uri:
        prefix: /env
    route:
    - destination:
        host: flaskapp.default.svc.cluster.local
        port:
          number: 80

 

$ export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath=‘{.spec.ports[?(@.name=="http2")].nodePort}‘)
$ export SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath=‘{.spec.ports[?(@.name=="https")].nodePort}‘)

 

 

 

总结:

 

我上面的例子中,gateway 可以把指定的URL 告诉 ingress pod处理。 virtualservice对指定URL进行 service 调用

1. Gateway: Istio Gateway是负责打开k8s上相关Istio的pods(pod!pod!pod!)上的端口并接收主机的流量,是接收流量与路由之间的关键链接。

2. VirtualService: Istio VirtualService是“附加”到Gateway上的,并负责定义Gateway应实现的路由。可以将多个VirtualServices连接到Gateway,但不适用于同一个域。

第七章 HTTP流量管理(一) gateway

标签:sys   protoc   接受   sga   访问   font   name   bsp   out   

原文地址:https://www.cnblogs.com/liufei1983/p/10433443.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!