目录
- 一.模块概览
- 二.系统环境
- 三.简单路由
- 3.1 简单路由
- 四.Subset和DestinationRule
- 4.1 Subset 和 DestinationRule
- 4.2 DestinationRule 中的流量策略
- 4.2.1 负载均衡器设置
- 4.2.2 连接池配置
- 4.2.3 异常点检测
- 4.2.4 客户端 TLS 设置
- 4.2.5 端口流量策略
- 五.高级路由
- 5.1 高级路由
- 5.2 重定向和重写请求
- 5.3 AND 和 OR 语义
- 六.实战:简单流量路由
- 6.1 简单流量路由
- 6.2 清理
- 七.实战:高级流量路由
- 7.1 高级流量路由
- 7.2 清理
使用服务网格Istio进行流量路由的前提是已经安装好了istio,关于istio的安装部署,请查看博客《Istio(二):在Kubernetes(k8s)集群上安装部署istio1.14》https://www.cnblogs.com/renshengdezheli/p/16836404.html
二.系统环境服务器版本docker软件版本Kubernetes(k8s)集群版本Istio软件版本CPU架构CentOS Linux release 7.4.1708 (Core)Docker version 20.10.12v1.21.9Istio1.14x86_64Kubernetes集群架构:k8scloude1作为master节点,k8scloude2,k8scloude3作为worker节点
服务器操作系统版本CPU架构进程功能描述k8scloude1/192.168.110.130CentOS Linux release 7.4.1708 (Core)x86_64docker , kube-apiserver , etcd , kube-scheduler , kube-controller-manager , kubelet,kube-proxy,coredns,calicok8s master节点k8scloude2/192.168.110.129CentOS Linux release 7.4.1708 (Core)x86_64docker,kubelet,kube-proxy,calicok8s worker节点k8scloude3/192.168.110.128CentOS Linux release 7.4.1708 (Core)x86_64docker,kubelet,kube-proxy,calicok8s worker节点三.简单路由3.1 简单路由我们可以使用 VirtualService 资源在 Istio 服务网格中进行流量路由 。通过 VirtualService,我们可以定义流量路由规则,并在客户端试图连接到服务时应用这些规则 。例如向
dev.example.com
发送一个请求,最终到达目标服务 。让我们看一下在集群中运行
customers
应用程序的两个版本(v1 和 v2)的例子 。我们有两个 Kubernetes 部署,customers-v1
和 customers-v2
。属于这些部署的 Pod 有一个标签 version:v1
或一个标签 version:v2
的设置 。路由到 Customers如下所示:
文章插图
我们想把 VirtualService 配置为将流量路由到应用程序的 V1 版本 。70% 的传入流量应该被路由到 V1 版本 。30% 的请求应该被发送到应用程序的 V2 版本 。
下面是上述情况下 VirtualService 资源的yaml文件:
apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata:name: customers-route spec:hosts:- customers.default.svc.cluster.localhttp:- name: customers-v1-routesroute:- destination:host: customers.default.svc.cluster.localsubset: v1weight: 70- name: customers-v2-routesroute:- destination:host: customers.default.svc.cluster.localsubset: v2weight: 30
在 hosts
字段下,我们要定义流量被发送到的目标主机 。在我们的例子中,这就是 customers.default.svc.cluster.local
Kubernetes 服务 。下一个字段是
http
,这个字段包含一个 HTTP 流量的路由规则的有序列表 。destination
是指服务注册表中的一个服务,也是路由规则处理后请求将被发送到的目的地 。Istio 的服务注册表包含所有的 Kubernetes 服务,以及任何用 ServiceEntry资 源声明的服务 。我们也在设置每个目的地的权重(
weight
) 。权重等于发送到每个子集的流量的比例 。所有权重的总和应该是 100 。如果我们有一个单一的目的地,权重被假定为 100 。通过
gateways
字段,我们还可以指定我们想要绑定这个 VirtualService 的网关名称 。比如说: apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata:name: customers-route spec:hosts:- customers.default.svc.cluster.localgateways:- my-gatewayhttp:...
上面的 YAML 文件将 customers-route
这个VirtualService 绑定到名为 my-gateway
的网关上 。这有效地暴露了通过网关的目标路由 。当一个 VirtualService 被附加到一个网关上时 , 只允许在网关资源中定义的主机 。下表解释了网关资源中的
推荐阅读
- Git 02: git管理码云代码仓库 + IDEA集成使用git
- node.js:《接口实现文件的上传和下载》
- Kotlin Mockito使用方法
- 之五 2流高手速成记:Springboot整合Shiro实现安全管理
- <五>掌握左值引用和初识右值引用
- 二 Istio:在Kubernetes(k8s)集群上安装部署istio1.14
- 四十八 SpringCloud微服务实战——搭建企业级开发框架:【移动开发】整合uni-app搭建移动端快速开发框架-使用第三方UI框架
- Spring Retry 重试
- C#-多线程的使用Tread
- 我国哪座山被称为五岳之首?支付宝