目录
- 一.模块概览
- 二.系统环境
- 三.简单路由
- 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
- 我国哪座山被称为五岳之首?支付宝
