欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

用Gateway管理进入网格的流量

程序员文章站 2022-06-17 13:07:00
...

网关

可以把他认为是一个运行在网格边缘的负载均衡器,接收外部请求,转发给网格内的服务,另外,我们还会通过网关来配置对外的端口,协议与内部服务的映射关系

用Gateway管理进入网格的流量

istio中的两种网关

Ingress网关,控制进入流量

Egress网关,控制出口流量

配置项

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: bookinfo-gateway
spec:
  selector:
    istio: ingressgateway 
  servers: //定义入口点,包括port,hosts,tls,defaultEndpoint
  - port: //端口,协议,以及名称
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "*"

任务

说明:创建一个入口网关,将进入网格的流量分到不同地址
目标:学会用gateway控制入口流量,掌握gateway的配置方法

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

---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: test-gateway
spec:
  hosts:
  - "*"
  gateways:
  - test-gateway #注意与网关对应
  http:
  #有两个可以被暴露出来的url
  #虚拟服务会把匹配到这两个url的请求,打到具体的detail服务中
  - match:
    - uri:
        prefix: /details
    - uri:
        exact: /health
    route:
    - destination:
        host: details
        port:
          number: 9080

访问

http://192.168.26.31:31245/details/0
http://192.168.26.31:31245/health

应用场景

  • 暴露网格内服务给外界
  • 配置访问安全相关的设置(HTTPS,mTLS等)
  • 作为应用的统一入口或者api聚合
相关标签: istio