-
Notifications
You must be signed in to change notification settings - Fork 326
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add: 路由 #304
add: 路由 #304
Conversation
Deploy preview for elated-johnson-d0b7ca ready! Built with commit 822a09a https://deploy-preview-304--elated-johnson-d0b7ca.netlify.app |
concepts/route.md
Outdated
* headers: 作为 route 的高级配置,用于对请求(request)/响应(response)中的 header 进行高级配置。分别包括 request header的set、add、remove操作,以及 response header 的set、add、remove操作。 | ||
|
||
在下面的示例中,本文基于 Kubernetes 注册发现,主机名即为 Kubernetes 服务名。 | ||
对于匹配 uri 为 /ratings/ 前缀的请求,路由到 ratings.prod.svc.cluster.local 的后端。25%的流量打到 v1 版本;75%的流量打到 v2 版本,同时对 remove 掉响应 header rate。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
25%的流量打到 v1 版本;75%的流量打到
-> 25% 的流量打到 v1 版本;75% 的流量打到
concepts/route.md
Outdated
|
||
## ServiceEntry | ||
前文也提到了,可以将网格外的服务加入网格内,进行流量控制。那就需要 ServiceEntry 登场了。Istio 提供了 ServiceEntry 这个 CRD,将外部服务纳入 Istio 的服务发现,即可完成向网格内服务一样的 | ||
管理。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
reviewers: [""] | ||
--- | ||
|
||
# 路由 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
路由的定义可以使用完整的一段来讲,类似下面这种格式:
维基百科中路由的定义是:通过互联的网络将信息从源地址传输到目的地址的活动。在 Istio 中的路由,结合维基百科的定义,即从源服务到目标服务的调用。在 Istio 中,通过几个重要的 CRD(CustomResourceDefinitions)来实现路由转发,包括 VirtualService、DestinationRule 以及 ServiceEntry:
- VirtualService 定义了路由的行为,包括匹配条件等;
- DestinationRule 定义路由后的目标规则,包括负载均衡、连接池等配置;
- ServiceEntry 实现了一种将外部服务暴露在网格内的能力;
通过以上的 CRD,Istio 可以非常简单的对服务间访问进行流量控制,通过组合配置,实现熔断、重试、超时等流量控制;同时也可以通过配置实现金丝雀发布,A/B 测试等功能。本章主要介绍通过核心 CRD 实现路由的能力,并对路由中典型的流控策略进行介绍,包括权重分流、负载均衡、熔断配置等。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
已修改
concepts/route.md
Outdated
|
||
其中 VirtualService 定义了路由的行为,包括匹配条件等;DestinationRule 定义路由后的目标规则,包括负载均衡、连接池等配置;ServiceEntry 实现了一种将外部服务暴露在网格内的能力。 | ||
|
||
通过以上的 CRD,Istio 可以非常简单的对服务间访问进行流量控制,通过组合配置,实现熔断、重试、超时等流量控制;同时也可以通过配置实现金丝雀发布,A/B 测试等功能。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Istio 可以非常简单的对服务间访问进行流量控制
-> 有点口语化了,看看这样修改是否好点:
服务之间访问的流量可以通过 Istio 控制
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
谢谢,调整为:通过以上 CRD 的配置,服务之间访问的流量可以通过 Istio 控制
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
谢谢,调整为:通过以上 CRD 的配置,服务之间访问的流量可以通过 Istio 控制
concepts/route.md
Outdated
|
||
通过以上的 CRD,Istio 可以非常简单的对服务间访问进行流量控制,通过组合配置,实现熔断、重试、超时等流量控制;同时也可以通过配置实现金丝雀发布,A/B 测试等功能。 | ||
|
||
本章主要介绍通过核心 CRD 实现路由的能力,并对路由中典型的流控策略进行介绍,包括权重分流、负载均衡、熔断配置等。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
本章主要介绍通过核心 CRD 实现路由的能力
-> 本章主要介绍 Istio 如何通过 CRD 控制数据面的路由能力
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
已修改
concepts/route.md
Outdated
|
||
![VirtualService 类图](../images/concept-route-class-virtualservice.png) | ||
|
||
如图所示,我们可以清晰的看到,VirtualService(以下简称 VS )主要包括的配置属性为:hosts、gateways、http、tls、tcp 以及 exportsTo。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
如图所示,我们可以清晰的看到,VirtualService(以下简称 VS )主要包括的配置属性为:hosts、gateways、http、tls、tcp 以及 exportsTo。
-> 如图所示,VirtualService(以下简称 VS )主要包括的配置属性有:hosts、gateways、http、tls、tcp 以及 exportsTo。
concepts/route.md
Outdated
默认该字段为 mesh,表示该VS作用于网格内的所有 sidecar。需要注意的是,如果需要作用于 gateway 和 sidecar,需要显示声明 mesh 和具体的 gateway。 | ||
* http: HTTPRoute 数组类型。定义 HTTP 路由规则,用于处理 HTTP 流量,主要包括 HTTP、HTTP2、GRPC。 | ||
* tls: TLSRoute 数组类型。用于处理非终结 TLS 和 HTTPS 流量。 | ||
* tcp: TCPRoute 数组类型。用于处理所有非 HTTP、TLS 的流量。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
中间应该使用逗号,前面几个类似。
tcp: TCPRoute 数组类型。用于处理所有非 HTTP、TLS 的流量。
-> tcp: TCPRoute 数组类型,用于处理所有非 HTTP、TLS 的流量。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
相似问题均修改
concepts/route.md
Outdated
|
||
从类图可以看出其中最为复杂的也是最丰富的配置便是 trafficPolicy 的配置。本文主要通过负载均衡策略的配置为读者拨云见日,快速了解 DestinationRule 的相关配置提供帮助。 | ||
|
||
loadBalancer 用于定义流控策略中的负载均衡配置,主要定义包括简单负载均衡(SimpleLB)以及一致性哈希负载均衡(ConsistentHashLB)。其中 SimpleLB 主要包括几种典型的负载均衡算法,即 ROUND ROBIN (也是默认的负载均衡算法),LEAST_CONN (最少请求连接),RANDOM(随机)。同样的, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ROUND ROBIN (轮询策略,也是默认的负载均衡算法)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
已修改
concepts/route.md
Outdated
从类图可以看出其中最为复杂的也是最丰富的配置便是 trafficPolicy 的配置。本文主要通过负载均衡策略的配置为读者拨云见日,快速了解 DestinationRule 的相关配置提供帮助。 | ||
|
||
loadBalancer 用于定义流控策略中的负载均衡配置,主要定义包括简单负载均衡(SimpleLB)以及一致性哈希负载均衡(ConsistentHashLB)。其中 SimpleLB 主要包括几种典型的负载均衡算法,即 ROUND ROBIN (也是默认的负载均衡算法),LEAST_CONN (最少请求连接),RANDOM(随机)。同样的, | ||
ConsistentHashLB 提供了基于 httpHeaderName (HTTP请求头),httpCookie(Cookie),useSourceIp (源IP),httpQueryParameterName(http query) 的一致性 Hash 计算因子,同时提供了 Hash 环大小的配置,默认为 1024。需要明确的是,在配置负载均衡策略时候,SimpleLB 和 ConsistentHashLB 只能选择一个,同时,每一种策略中的 LB 算法也只能选择其中一个进行配置。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
httpHeaderName (HTTP请求头)
-> httpHeaderName (HTTP 请求头)
useSourceIp (源IP)
-> useSourceIp (源 IP)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
已修改,谢谢
concepts/route.md
Outdated
ConsistentHashLB 提供了基于 httpHeaderName (HTTP请求头),httpCookie(Cookie),useSourceIp (源IP),httpQueryParameterName(http query) 的一致性 Hash 计算因子,同时提供了 Hash 环大小的配置,默认为 1024。需要明确的是,在配置负载均衡策略时候,SimpleLB 和 ConsistentHashLB 只能选择一个,同时,每一种策略中的 LB 算法也只能选择其中一个进行配置。 | ||
|
||
在下面展示的示例中,定义一个 DestinationRule, 本文基于 Kubernetes 注册中心,因此服务名即为服务 host。可以看到,服务的 host 为:ratings.prod.svc.cluster.local,通过 subsets 定义 subset 名称为 version3, 代表所有 label 包含 version:v3 的服务实例。通过 trafficPolicy 中的 | ||
loadBalancer 定义,version3 的负载均衡策略为 ROUND_ROBIN;其他服务实例的负载均衡策略则为 LEAST_CONN。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
多余的换行。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
已修改
concepts/route.md
Outdated
|
||
可以看到 HTTPRoute 的主要配置包括:match、route、redirect、rewrite、retries 等。通过 HTTPRoute,定义 match 条件以及满足条件后路由策略。满足 HTTPMatchRequest 匹配条件的流量,都被路由至 HTTPRouteDestination 定义的目的,执行 HTTPRedirect 定义的重定向,HTTPRewrite 定义的重写,HTTPRetry 定义的重试以及 HTTPFaultInjection 定义的故障注入等策略。 | ||
|
||
HTTPMatchRequest 定义了路由规则的匹配条件,包括 uri、method、authority、headers、queryParams 等匹配条件。其中 uri,method,authority为 StringMatch 类型。StringMatch 类型描述了 string 的匹配类型,包括精确(exact)、前缀(prefix)以及正则(regex)三种类型。而 Headers 和 queryParams 则是 Map<string, StringMatch> 类型。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
authority为
-> authority 为
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
�已修改,谢谢
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
�已修改,谢谢
LGTM. |
ref: #69
在完成项的 [ ] 内填入 x,如:- [x]
add: 文档标题
,修改已有内容 PR 的标题格式为update:文档标题
)。