• istio系列:第六章-Sidecar代理规则配置


    istio系列:第六章-Sidecar代理规则配置

    在前面我们学习了流量的转发、过滤等规则,但是这些都是根据host、客户端请求维度对流量进行管理的,在istio1.1版本以后,添加了新的规则Sidecar,该规则在Sidecar的维度对请求进行管理,接下来就让我们看看它到底是什么吧!

    有一个Sidecar资源时1.1版本后添加的,用来配置Sidecar组件中的规则。另一个是Sidecar组件,由envoy实现,这里希望不要弄混

    Sidecar规则图

    Sidecar 定义

    stio 在 1.1 版本中引入的 Sidecar 资源对象可以精细地控制Envoy转发和接收的端口、协议等,并可以限制Sidecar Outbound流量允许到达的目标服务集合。

    说白了就是,在Sidecar组件上配置一些规则,比如可以设置某个host下的端口为3302的请求全部允许转发,这就相当于,我们配置路由规则、目标规则让Sidecar组件开启路由转发的功能,但是Sidecar组件本身也可以进行一定的规则配置,而这个规则配置就是我们所说的Sidecar资源。

    Sidecar属性

    接下里让我们看一下Sidecar里面有什么属性

    type Sidecar struct {
       WorkloadSelector *WorkloadSelector 
       Ingress []*IstioIngressListener 
       Egress []*IstioEgressListener 
       OutboundTrafficPolicy *OutboundTrafficPolicy 
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    WorkloadSelector

    服务选择器,标识了该Sidecar规则适用于本命名空间下的那些资源

    Egress

    是一种 IstioEgressListener 类型,可用来配置 Sidecar 对网格内其他服务的访问,如果没有配置,则只要命名空间可见,命名空间里的服务就都可以被访问。

    type IstioEgressListener struct {
    	Port *Port
    	Bind string 
    	CaptureMode CaptureMode 
    	Hosts []string 
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    Port

    对于该规则管理的工作负载来说,如果不配置,则允许所有的请求,如果配置了比如3302,则只允许该端口下的请求访问其他服务

    Bind

    绑定IP地址,如果设置了IP必须设置端口

    CaptureMode

    配置如何捕获监听器的流量,可以有DEFAULT、IPTABLES、NONE三种模式。DEFAULT表示使用环境默认的捕获规则;IPTABLES指定基于iptabels的流量拦截;NONE表示没有流量拦截。

    Hosts

    配置Host地址,格式为 命名空间/host地址。

    在请求外部服务时,会对host与端口号进行匹配,如果匹配成功则进行转发。

    Ingress

    与Egress类似,但是是相反的意思,egress是内部服务访问外部服务、ingress是外部服务访问内部服务

    type IstioIngressListener struct {
       Port *Port 
       Bind string 
       CaptureMode CaptureMode 
       DefaultEndpoint string 
       Tls *ServerTLSSettings 
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    有一些属性与Egress类似,在里不再累述。

    DefaultEndpoint

    为流量转发的目标地址,当外部服务请求进来以后要转发的IP地址,比如127.0.0.1:3301 意思是转发到127.0.0.1的3301端口

    这种方式用在自动流量拦截功能不可用,即未能初始化iptables规则时,通过Sidecar的这种配置可以将流量转发到本地负载的3301端口

    ###OutboundTrafficPolicy

    配置Sidecar出站的规则

    有两种配置:

    • OutboundTrafficPolicy_REGISTRY_ONLY ,第一种是向外发送的请求必须是服务注册表或者ServiceEntry定义的地址。
    • OutboundTrafficPolicy_ALLOW_ANY,允许请求未知的地址

    如果选择了OutboundTrafficPolicy_ALLOW_ANY规则,我们可以配置出口代理信息,比如IP、端口等。

  • 相关阅读:
    【云原生】机密容器介绍
    worthington细胞分离技术方法之如何使用酶?
    RedisJson发布官方性能报告,性能碾压ES和Mongo
    盘点检索任务中的损失函数
    报名 | 2022年 Ansys 全球仿真大会中国站启动报名
    React源码分析(二)渲染机制
    解决0-1背包问题(方案二):一维dp数组(滚动数组)
    Nginx 监控模块
    算法---腐烂的橘子
    Web3 时代 传统品牌如何玩转 NFT 营销?
  • 原文地址:https://blog.csdn.net/a1023934860/article/details/125478584