Istioh是什么

Istio是一个开源服务网格平台,可以控制微服务之间的交互方式(数据的共享方式)。如果听说过Istio或已经安装了Istio,可能会熟悉Istio单集群图。

在设计上,Istio 可以在多种环境中运行:企业本地、云托管、Kubernetes容器或虚拟机上运行的服务。

为什么要使用Istio

Istio可以创建带有负载平衡,服务到服务的身份验证,监视等功能的已部署服务网络,而代码更改很少或没有更改。

通过在整个环境中部署特殊的sidecar代理以拦截微服务之间的所有网络通信,然后使用控制平面功能配置和管理Istio,可以为服务添加Istio支持,包括:

HTTP,gRPC,WebSocket和TCP通信的自动负载平衡。

通过丰富的路由规则、重试、故障转移和故障注入对流量行为进行精细控制。

可插拔的策略层和配置API,支持访问控制、速率限制和配额。

群集内所有流量的自动指标、日志和跟踪,包括群集的入口和出口。

通过强大的基于身份的身份验证和授权,在群集中进行安全的服务间通信。

Istio专为可扩展性而设计,可满足多种部署需求。通过拦截和配置网状网络流量来做到这一点,如开局的那张图。

Istio架构

Istio的架构分为数据平面和控制平面两部分。

在数据平面中,通过在环境中部署 sidecar 代理,即可为服务添加 Istio 支持。

Sidecar代理与微服务并存,用于将请求路由给其他代理,或从其他代理那路由请求。这些代理共同构成了一个网格网络,可拦截微服务之间的网络通信。

控制平面则负责管理和配置代理来路由流量。此外,控制平面还可配置组件,以实施相关策略并收集遥测数据。

借助Istio等服务网格,开发和运维部门就可以更好地应对从单体式应用向云原生应用(一组小型、独立且松散耦合的微服务应用的集合)的转变。

针对服务网格及其所支持的微服务,Istio可提供相应的行为分析和操作控制。

服务网格降低了部署的复杂性,并减轻了开发团队的负担。借助Istio的特殊能力,可以运行分布式微服务架构。这些功能包括:

流量管理:

Isitio拥有流量路由和规则配置功能,可以控制服务之间的流量及API调用。

安全防护:

Istio提供了底层通信渠道,并可大规模管理服务通信的身份验证、授权和加密。借助 Istio,可跨多个协议和运行时,以最小的应用更改持续一致地实施各项策略。

将Istio与Kubernetes(或基础架构)网络策略一起使用,能可靠保护网络层和应用层的容器集间或服务间的通信。

可观测性:

利用Istio的跟踪、监测和日志记录功能,深入了解服务网格部署。

监测功能了解服务活动将如何影响上游和下游的性能。自定义仪表板能够查看服务的性能。

什么是服务网格

当单体应用程序向分布式微服务架构过渡时,Istio解决了开发人员和运营商面临的挑战。 

服务网格用于描述组成此类应用程序的微服务网络及他们之间的交互。

随着服务网格的大小和复杂性的增长,它变得越来越难以理解和管理。

它的要求可以包括发现、负载平衡、故障恢复、指标和监视。 

服务网格通常还具有更复杂的操作要求,如A / B测试、金丝雀发布、速率限制、访问控制和端到端身份验证。

Istio提供了整个服务网格的行为洞察力和操作控制,从而提供了一个完整的解决方案来满足微服务应用程序的各种需求。