微服务2.0来了,Istio是一个服务网格

去年在公司实践了微服务,今年逐步完善了整个架构体系,包括PaaS平台的上线和完善,7月份的时候参加蚂蚁的一个技术分享会,了解他们在推动服务网格,后面逐步关注这块,接触到Istio。这里做一个记录。

微服务并不像过去那样新鲜和热,这绝对是一件好事。因为我们已经发展到基于Kubernetes,Openshift和其他各种集装箱管理系统的稳定可靠的领先地步,而不是生活在前沿集装箱平台的时代。现在,基于这些容器编排提供了很多核心功能,如负载平衡,服务发现和安全性,这就是在基础架构上创建所谓的服务网格。

Istio就是这样的一个服务网络产品,它是仅次于谷歌Kubernetes的开源贡献。将Istio称为热门话题是轻描淡写的。

Istio是控制面板,Envoy是数据面板

服务网格使分布式系统的核心功能(如服务之间的通信)更易于配置和管理。所有应用程序所需的通用网络功能集(例如处理超时,重试,速率限制,路由和负载平衡)都可以集中处理,因此每个应用程序无需单独处理这些难题。

这有助于保持业务逻辑分离,因此开发人员可以专注于使用户满意,而不必担心堆栈的较低层。Istio通过Envoy提供这套解决方案,数据面板处理服务网格中的所有流量,以及构成管理策略和配置的控制面板的少数应用程序,即:

  • Pilot - 流量管制 俗称飞行员
  • Mixer - 后端集成
  • Citadel - 身份验证和授权
  • Galley - 配置验证

Envoy微服务代理

Envoy是一个代理,类似于HAProxy和Nginx,但专为微服务架构而设计。具有以下功能:

  • 动态重新配置/热重启
  • 分阶段/金丝雀部署
  • 高级负载平衡
  • 请求路由
  • 健康检查
  • 分布式跟踪

Envoy管理内部和外部服务通信的所有路由要求,外部服务连接受益于故障恢复功能,例如超时,重试和断路器。Envoy被部署为应用程序pod中的sidecar容器,并通过gRPC从Istio控制面板接收其所有配置。

进出应用程序的数据包被Envoy使用iptables拦截,这允许强大的路由控制和流量可见性,提供详细的指标。Envoy旨在简化高度分布式,面向服务架构中的网络和可观察性的困难。高性能和低延迟是任何有价值的代理的基本特征,因此使用C ++编写Envoy是完全合理的。

通过Pilot和Mixer进行流量控制和遥测

Mixer和Pilot是利用Istio服务网格最重要特征所不可或缺的,即:流量管理和遥测处理。

Pilot

Envoy侧面车从Pilot接收策略以执行规则,例如允许服务A与服务B通话,但不允许服务A与服务C通话.Pilot提供请求路由和负载平衡的配置设置,以支持分阶段发布,蓝/绿部署和A / B测试。

[图片上传失败...(image-4cf5a0-1540467207337)]

由Pilot管理的路由规则允许Envoy根据分配给每个版本的HTTP标头和权重等条件选择指定的APP版本。

[图片上传失败...(image-3f9131-1540467207337)]

来自底层集群基础设施比如k8s的服务注册表通过Pilot 发送到 Envoy 边车共享给整个服务网格,用于动态服务发现。也就是说,Istio不负责服务注册,服务注册到K8s中,这样避免了服务注册的单点风险。

Mixer

Mixer有一组支持的适配器,它与Prometheus和Stackdriver等基础设施后端对话,以处理和存储指标,跟踪和记录。Envoy将遥测数据发送到Mixer,然后Mixer将这些值发送到配置的后端。

stio 首先是一个服务网络,但是Istio又不仅仅是服务网格: 在 Linkerd, Envoy 这样的典型服务网格之上,Istio提供了一个完整的解决方案,为整个服务网格提供行为洞察和操作控制,以满足微服务应用程序的多样化需求。

Istio在服务网络中统一提供了许多关键功能(以下内容来自官方文档):

  • 流量管理:控制服务之间的流量和API调用的流向,使得调用更可靠,并使网络在恶劣情况下更加健壮。

  • 可观察性:了解服务之间的依赖关系,以及它们之间流量的本质和流向,从而提供快速识别问题的能力。

  • 策略执行:将组织策略应用于服务之间的互动,确保访问策略得以执行,资源在消费者之间良好分配。策略的更改是通过配置网格而不是修改应用程序代码。

  • 服务身份和安全:为网格中的服务提供可验证身份,并提供保护服务流量的能力,使其可以在不同可信度的网络上流转。

除此之外,Istio针对可扩展性进行了设计,以满足不同的部署需要:

  • 平台支持:Istio旨在在各种环境中运行,包括跨云, 预置,Kubernetes,Mesos等。最初专注于Kubernetes,但很快将支持其他环境。

  • 集成和定制:策略执行组件可以扩展和定制,以便与现有的ACL,日志,监控,配额,审核等解决方案集成。

这些功能极大的减少了应用程序代码,底层平台和策略之间的耦合,使微服务更容易实现。

istio架构图

image

Istio的关键功能包括:

  • HTTP/1.1,HTTP/2,gRPC和TCP流量的自动区域感知负载平衡和故障切换。
  • 通过丰富的路由规则,容错和故障注入,对流行为的细粒度控制。
  • 支持访问控制,速率限制和配额的可插拔策略层和配置API。
  • 集群内所有流量的自动量度,日志和跟踪,包括集群入口和出口。
  • 安全的服务到服务身份验证,在集群中的服务之间具有强大的身份标识。

总结

在没有像Istio这样的服务网格的情况下管理分阶段部署和应用程序版本并非易事。Envoy和Istio控制面板组件通过编码请求路由配置,并将该控制权交给开发人员来支持组织的DevOps计划。

Istio网格的另一个重要特性是您无需安装或使用所有组件。我们建议利用Istio的跟踪功能来可视化流量在您的服务和网络之间流动的方式。这是开始使用Istio的完美方式,因为它可以快速轻松地进行配置,并且无需更改您的微服务即可开始受益于此遥测。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容