当前位置:网站首页>【Istio Network CRD VirtualService、Envoyfilter】
【Istio Network CRD VirtualService、Envoyfilter】
2022-07-07 06:20:00 【仙女肖消乐】
VirtualService简介:
VirtualService定义了一系列针对指定服务的流量路由规则。每个路由规则都针对特定协议匹配规则。如果流量符合这些特征,就会根据路由规则发送到服务注册表中的目标服务。
hosts
string[] 必要字段:流量的目标主机。可以是带有通配符前缀的 DNS 名称,也可以是 IP
地址。根据所在平台情况,还可能使用短名称来代替 FQDN。这种场景下,短名称到 FQDN
的具体转换过程是要靠下层平台完成的。一个主机名只能在一个 VirtualService 中定义。同一个 VirtualService
中可以用于控制多个 HTTP 和 TCP 端口的流量属性。 Kubernetes 用户注意:当使用服务的短名称时(例如使用
reviews,而不是 reviews.default.svc.cluster.local),Istio
会根据规则所在的命名空间来处理这一名称,而非服务所在的命名空间。假设 “default” 命名空间的一条规则中包含了一个 reviews 的
host引用,就会被视为 reviews.default.svc.cluster.local,而不会考虑 reviews
服务所在的命名空间。为了避免可能的错误配置,建议使用 FQDN 来进行服务引用。 hosts 字段对 HTTP 和 TCP
服务都是有效的。网格中的服务也就是在服务注册表中注册的服务,必须使用他们的注册名进行引用;只有 Gateway 定义的服务才可以使用 IP
地址。
gateways
string[] Gateway 名称列表,Sidecar 会据此使用路由。VirtualService 对象可以用于网格中的
Sidecar,也可以用于一个或多个 Gateway。这里公开的选择条件可以在协议相关的路由过滤条件中进行覆盖。保留字 mesh
用来指代网格中的所有 Sidecar。当这一字段被省略时,就会使用缺省值(mesh),也就是针对网格中的所有 Sidecar
生效。如果提供了 gateways 字段,这一规则就只会应用到声明的 Gateway 之中。要让规则同时对 Gateway
和网格内服务生效,需要显式的将 mesh 加入 gateways 列表。
http
HTTPRoute[] HTTP 流量规则的有序列表。这个列表对名称前缀为 http-、http2-、grpc- 的服务端口,或者协议为
HTTP、HTTP2、GRPC 以及终结的 TLS,另外还有使用 HTTP、HTTP2 以及 GRPC 协议的 ServiceEntry
都是有效的。进入流量会使用匹配到的第一条规则。
tls
TLSRoute[] 一个有序列表,对应的是透传 TLS 和 HTTPS 流量。路由过程通常利用 ClientHello 消息中的 SNI
来完成。TLS 路由通常应用在 https-、tls- 前缀的平台服务端口,或者经 Gateway 透传的 HTTPS、TLS
协议端口,以及使用 HTTPS 或者 TLS 协议的 ServiceEntry 端口上。注意:没有关联 VirtualService 的
https- 或者 tls- 端口流量会被视为透传 TCP 流量。
tcp
`TCPRoute[] 一个针对透传 TCP 流量的有序路由列表。TCP 路由对所有 HTTP 和 TLS
之外的端口生效。进入流量会使用匹配到的第一条规则。
Envoyfilter简介
EnvoyFilter 对象描述了针对代理服务的过滤器,这些过滤器可以定制由 Istio Pilot
生成的代理配置。这一功能一定要谨慎使用。错误的配置内容一旦完成传播,可能会令整个服务网格进入瘫痪状态。
注 1:这一配置十分脆弱,因此不会有任何的向后兼容能力。这一配置是用于对 Istio 网络系统的内部实现进行变更的。
注 2:如果有多个 EnvoyFilter
绑定在同一个工作负载上,所有的配置会按照创建时间的顺序进行处理。如果多个配置之间存在冲突,会产生不可预知的后果。
workloadLabels
map<string, string> 一个或多个标签,用于标识一组
Pod/虚拟机。这一组工作负载实例中的代理会被配置使用附加的过滤器配置。标签的搜索范围是平台相关的。例如在 Kubernetes
中,生效范围会包括所有可达的命名空间。如果省略这一字段,配置将会应用到网格中的所有 Envoy 代理实例中。注意:一个工作负载只应该使用一个
EnvoyFilter。如果多个 EnvoyFilter 被绑定到同一个工作负载上,会产生不可预测的行为。
filters
EnvoyFilter.Filter[] 必要字段。要加入指定监听器之中的 Envoy 网络过滤器/HTTP 过滤器配置信息。当给 http
连接加入网络过滤器的时候,应该注意确保该过滤器应早于 envoy.httpconnectionmanager。
边栏推荐
- 如何在快应用中实现滑动操作组件
- 详解华为应用市场2022年逐步减少32位包体上架应用和策略
- 登山小分队(dfs)
- LeetCode 715. Range module
- Digital triangle model acwing 275 Pass a note
- 模拟卷Leetcode【普通】1567. 乘积为正数的最长子数组长度
- 模拟卷Leetcode【普通】1557. 可以到达所有点的最少点数目
- Test pits - what test points should be paid attention to when adding fields to existing interfaces (or database tables)?
- idea里使用module项目的一个bug
- Data analysis methodology and previous experience summary 2 [notes dry goods]
猜你喜欢
Goldbach conjecture C language
NCS Chengdu New Electric interview Experience
Count sort (diagram)
使用Typora编辑markdown上传CSDN时图片大小调整麻烦问题
Analysis of using jsonp cross domain vulnerability and XSS vulnerability in honeypot
How to realize sliding operation component in fast application
PPT模板、素材下载网站(纯干货,建议收藏)
ncs成都新電面試經驗
2022-07-06 Unity核心9——3D动画
最长上升子序列模型 AcWing 1017. 怪盗基德的滑翔翼
随机推荐
RuntimeError: Calculated padded input size per channel: (1 x 1). Kernel size: (5 x 5). Kernel size c
Routing information protocol rip
数据库存储---表分区
oracle一次性说清楚,多种分隔符的一个字段拆分多行,再多行多列多种分隔符拆多行,最终处理超亿亿。。亿级别数据量
Data analysis methodology and previous experience summary 2 [notes dry goods]
路由信息协议——RIP
Several methods of calculating the average value of two numbers
如何统计项目代码行数
Opencv converts 16 bit image data to 8 bits and 8 to 16
Newly found yii2 excel processing plug-in
Recommended by Alibaba P8, the test coverage tool - Jacobo is very practical
leetcode134. gas station
详解华为应用市场2022年逐步减少32位包体上架应用和策略
A bug using module project in idea
Greenplum6.x搭建_安装
调用华为游戏多媒体服务的创建引擎接口返回错误码1002,错误信息:the params is error
Count sort (diagram)
Redis fault handling "can't save in background: fork: cannot allocate memory“
测试踩坑 - 当已有接口(或数据库表中)新增字段时,都需要注意哪些测试点?
Gson converts the entity class to JSON times declare multiple JSON fields named