Istio入坑指南(一)

Istio入坑指南(一)

前言

Istio的学习日记,之前对Istio有过介绍,加上一些自己的理解吧,有错误的地方希望大家提出来,一起探讨。

什么是Istio

2017年,Google开源了Istio,弥补了Kubernetes在服务间流量管理方面的劣势,Istio是对William Morgan提出的的Service Mesh理念的落地。关于Service Mesh,将在后面进行介绍。

说回Istio,官网给出这样的介绍

An open platform to connect, secure, control and observe services.

总结起来就是四个词

连接、保护、控制、观察

所以,Istio是一个连接了各个服务的平台,对服务间的流量进行管理、控制、观察与保护。

在对Istio各功能学习前需要了解几个前置知识,包括前面提到的Service Mesh以及Sidecar代理。

SideCar代理

网络代理相信大家都很熟悉了,例如Nginx,在网络通信中网络代理可以帮助我们完成许多事情,包括拦截一些流量,负载均衡,对流量进行统计等等,那么,SideCar代理和网络代理又有什么关系呢?

SideCar,就是挎斗摩托车,如果说传统的网络代理就像你和你的同事们通过老板的秘书和老板完成通讯,那么SideCar代理就是老板为说有员工都安排了一个秘书,公司内所有的通讯都由每个员工的秘书进行管理,而你,就是小挎斗里的一个服务。

image-20210604112243248

代理将不再是一个单独的组件,每个服务都有自己的代理,服务间通过SideCar代理进行通信。

Linkerd,Envoy,NginxMesh就是SideCar模式的的具体落地。

Service Mesh

而SideCar代理,正是Service Mesh的核心。

但是,Service Mesh和传统的微服务架构有究竟有什么不同呢?

传统微服务开发框架,如SpringCloud,在分布式系统通信提供了如服务发现,负载均衡等的功能,但是却还是存在着一些问题:

  1. 微服务框架虽然为我们屏蔽了各个功能的实现细节,但是作为开发者我们仍需要去花时间花精力去学习使用,并且管理这个复杂的框架。
  2. 服务需要依赖与微服务框架,如果框架升级,会导致服务需要因为与业务无关的功能升级而被迫升级。

而Service Mesh正是为了解决这些问题而生,通过SideCar接管服务,接管网络流量,加入控制平面,对所有SideCar进行统一的管理和维护,这就是一个完整的Service Mesh

image-20210511142552089

Service Mesh屏蔽了分布式系统的许多复杂的东西,可以让开发者更加专注于业务,聚焦真正的价值。

Pattern: Service Mesh

Istio

了解了Service Mesh,让我们说回Istio。

Istio提供了Service Mesh整体行为的观察和控制,提供了完整的解决方案来满足微服务应用程序多样化的需求。

Istio可以轻松地创建一个具有负载均衡、服务到服务的身份验证、监控等功能的Service Mesh,而且对于服务代码而言,可以做到最小化的侵入,甚至没有侵入。

istio架构图

上图为istio架构图。

主要分为 Data PlaneControl Plane

Data Plane

数据层由多个SideCar代理组成,Istio使用了Envoy代理为服务进行SideCar部署,使用Envoy的许多内置功能在逻辑上增强服务。

基于Envoy为Istio提供了

  • 流量管理:通过针对 HTTP、gRPC、WebSocket 和 TCP 流量的丰富路由规则实施细粒度的流量控制。
  • 网络弹性:设置重试、故障转移、断路器和故障注入。
  • 安全和身份验证:实施安全策略并实施通过配置 API 定义的访问控制和速率限制。
  • 基于WebAssembly的课插拔扩展模型,允许为网状流量自定义策略实施和遥测生成。
Control Plane

控制层Istiod,提供服务发现、配置、证书管理的功能

通过Istiod,将控制流量的路由规则转换为Envoy特定的配置,并在运行时下发到SideCar。

Isito支持Kubenetes或VM等多种环境的发现。

Istio核心功能

流量管理

Istio 的简单规则配置和流量路由让您可以控制服务之间的流量和 API 调用。Istio 简化了断路器、超时和重试等服务级别属性的配置,并使设置重要任务(如 A/B 测试、金丝雀发布和基于百分比的流量拆分的分阶段发布)变得轻而易举。

安全

Istio 的安全功能使开发人员能够专注于应用程序级别的安全性。Istio 提供底层安全通信通道,并大规模管理服务通信的身份验证、授权和加密。使用 Istio,默认情况下服务通信是安全的,让您可以跨不同的协议和运行时一致地实施策略——所有应用程序更改很少或没有。

观察

Istio 强大的跟踪、监控和日志记录功能可让您深入了解服务网格部署。使用 Istio 的监控功能真正了解服务性能如何影响上游和下游的事物,而其自定义仪表板提供对所有服务性能的可见性,并让您了解该性能如何影响您的其他流程。

支持平台

Istio 是独立于平台的,旨在在各种环境中运行,包括跨越云、本地、Kubernetes、Mesos 等的环境。您可以将 Istio 部署在 Kubernetes 上,或者使用 Consul 部署在 Nomad 上。Istio 目前支持:

  • Kubernetes 上的服务部署
  • 向 Consul 注册的服务
  • 在单个虚拟机上运行的服务

Istio1.8官方文档

后续将会对每个功能如何配置使用进行介绍。

部署

  • 向 Consul 注册的服务
  • 在单个虚拟机上运行的服务

Istio1.8官方文档

后续将会对每个功能如何配置使用进行介绍。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值