k8s-Istio服务网络 27

本文详细介绍了Istio在Kubernetes环境中的应用,包括其数据面和控制面功能、基本概念如Gateway、VirtualService和DestinationRule,以及流量管理、故障注入和熔断机制的实战演示。
摘要由CSDN通过智能技术生成

官网:https://istio.io/latest/zh/about/service-mesh/

Istio与k8s的区别

SpringCloud传统微服务结合k8s与Istio与k8s结合:

Istio数据面:通过envoy以sidecar方式拦截svc的流量来进行治理。

Istio控制面:pilot list/watch APIserver 获取相关数据。istio配置也是通过istioctl/kubectl写入apiserver。

Istio基础概念:

Gateway:提供外部服务访问接口,可发布任意内部端口的服务,供外部访问。配合VirtualService使用,使用标准的Istio规则处理。
VirtualService:最核心的配置接口,定义指定服务的所有路由规则。

DestionationRule:决定路由处理之后的流量访问策略,负载均衡、断路器、TLS设置等。 ServiceEntry:将外部服务接入到服务注册中,让Istio中自动发现的服务能够访问和路由到这些手 动加入的服务。与VirtualService或DestinationRule配合使用。

Istio安装

demo专为测试准备的功能集合

给命名空间添加标签,指示 Istio 在部署应用的时候,自动注入 Envoy 边车代理
部署示例应用
架构图

创建 Istio入站网关

调用链追踪(仪表板)

修改服务访问方式为LoadBalancer

访问kiali

流量管理

将所有流量路由到每个微服务的 v1 版本

来自名为 Jason 的用户的所有流量将被路由到服务 reviews:v2

测试

创建故障注入规则以延迟来自测试用户jason的流量
设置流量转移,从v2转到v3
修改延迟规则为两秒
把 50% 的流量从 reviews:v1 转移到 reviews:v3

测试完后,当reviews:v3 微服务稳定时,可以通过应用Virtual Service规则将100%的流量路由reviews:v3
回收清理
熔断
部署 httpbin 服务
配置一个熔断器
测试一下连接
触发熔断器
istio-proxy 允许存在一些误差。
将并发连接提高到三个
将并发连接提高到6个
当并发数和请求次数达到一定数量时,数据将均被熔断器拦截。
清理
卸载istio
  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值