• istio系列:第四章-Ingress网关配置


    istio系列:第四章-Ingress网关配置

    Gateway在网格边缘接收外部访问,并将流量转发到网格内的服务。Istio通过Gateway将网格内的服务发布成外部可访问的服务,还可以通过Gateway配置外部访问的端口、协议及与内部服务的映射关系。

    在istio中,同注入pod之间通讯是通过envoy进行路由的,但是普通pod与istio.pod、外网与istio.pod之间的通讯,有该如何进行那?如果使用k8s原生的service可以进行通讯,但是就无法使用istio中的路由转发、流量限制等功能。那么我们既想可以外网访问又可以使用istio中的功能,该怎么办那?Gatway解决了这个问题。

    Gatway的原理与ingress基本类似,都是在内部部署了一个类似于nginx的组件,解析请求hosts然后转发到POD上。

    接下来让我们看一下它的具体配置结构

    type Gateway struct {
       Servers []*Server 
       Selector map[string]string  
    }
    
    • 1
    • 2
    • 3
    • 4

    Selector

    标签选择器,这个我们并不陌生提供了多种标签过滤组件。

    这里的作用是对POD进行过滤

    Servers

    提供了向外开放的端口以及传输协议、绑定hosts(这个将具体讲解)。

    type Server struct {
      //暴露的端口、使用的协议
       Port *Port
       Bind string
      //设定请求的hosts,并且与virtualservice绑定,FQDN语法,作用过滤virtualservice中的hosts
       Hosts []string
      // tls设定
       Tls *ServerTLSSettings 
      // 流量应该发送到的环回 IP 端点或 Unix 域套接字
       DefaultEndpoint string 
      // 服务名称
       Name string 
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    接下来让我们重点讲解一下hosts机制

    设定gatway公开的域名,通常用于http服务,但是也可以使用与TCP服务。

    在istio中也有命名空间的概念,gatway在定义域名(主机)时可以指定作用于的命名空间,这样virtualserivce在使用的过程中就需要进行命名空间的判断。

    gatway通过 namespace/ + 域名来设定命名空间,对于hosts来说可以使用FQDN格式,所以我们在日常使用过程时应该尽量使用FQDN格式进行配置。

    让我们举个例子

    hosts设置了prod/*.example.com,那么VirtualService在使用的过程中指定hosts时可以指定dev.example.com,prod.example.com这些的前提是VirtualService在prod命名空间下或者设置了exportTo。

    当hosts设置为*或者.时 代表任何或当前命名空间,比如*/foo.example.com代表所有命名空间下的virtualService都可以使用该gatway

    如果我们不设置命名空间的话,比如example.com,那么与.的效果一致

    这里其实我们讲解的是ingress gatway(外部访问内部的过程)

    那么内部向外部访问的过程又是怎么样的那?为什么内外访问需要两个工具,egress gatway又是什么那?这个让我们在下一章 service-entry 中进行讲解。

  • 相关阅读:
    用DIV+CSS技术设计的体育篮球主题 校园体育网页与实现制作(web前端网页制作课作业)
    java 相似度计算
    计算机毕业设计基于springboot+vue+elementUI的网吧管理系统(源码+系统+mysql数据库+Lw文档)
    linux驱动之设备树查找节点(3)
    精益思想如何加速企业的全局价值流动?
    SQL Server实例间同步登录用户
    乐观型人格分析,性格乐观的优缺点和职业发展分析
    VRRP虚拟路由器冗余协议
    JAVA毕业设计Internet快递柜管理系统计算机源码+lw文档+系统+调试部署+数据库
    实现动态业务规则的方法(Java)
  • 原文地址:https://blog.csdn.net/a1023934860/article/details/125414029