Istio 是什么:服务网格架构与核心概念解析

1. 为什么使用Istio

通过负载平衡、service-to-service身份验证、监视等方法,Istio可以轻松地创建部署的服务网络,而服务代码中的代码更改很少或没有更改。您可以通过在整个环境中部署一个特殊的sidecar代理来为服务添加Istio支持,该代理可以拦截微服务之间的所有网络通信,然后使用其控制平面功能来配置和管理Istio,其中包括:

  • HTTP、gRPC、WebSocket和TCP流量的自动负载平衡。
  • 使用丰富的路由规则、重试、故障转移和故障注入对流量行为进行细粒度控制。
  • 支持访问控制、速率限制和配额的可插拔策略层和配置API。
  • 集群内所有流量的自动度量、日志和跟踪,包括集群入口和出口。
  • 在具有强大的基于身份的身份验证和授权的集群中实现安全的服务到服务通信。

2. Istio的核心功能

2.1 流量管理

Istio的简单规则配置和流量路由允许您控制服务之间的流量和API调用流。Istio简化了服务级属性(如断路器、超时和重试)的配置,并且简化了设置重要任务(如a /B测试、金丝雀测试和按百分比划分的分阶段测试)的工作。

有了更好的流量可视性和开箱即用故障恢复功能,您可以在问题产生之前捕获问题,使调用更可靠,网络更健壮。

2.2 安全

Istio的安全功能使开发人员可以专注于应用程序级别的安全。Istio提供了底层的安全通信通道,并按比例管理服务通信的身份验证、授权和加密。通过Istio,服务通信在缺省情况下是安全的,允许您在不同的协议和运行时之间一致地实施策略——所有这些都只需要很少或没有应用程序更改。

虽然Istio是平台独立的,与Kubernetes(或基础设施)网络策略一起使用,但是它的好处更大,包括能够在网络和应用层上保护点到点或服务到服务的通信。

2.3 观察

Istio的健壮跟踪、监视和日志功能使您能够深入了解服务网格部署。通过Istio的监视功能,可以真正理解服务性能如何影响上游和下游的事情,而它的自定义仪表板提供了对所有服务的性能的可见性,并让您看到该性能如何影响其他流程。

2.4 平台的支持

Istio是独立于平台的,设计用于在各种环境中运行,包括跨云、内部环境、Kubernetes、Mesos等等。您可以在Kubernetes或Nomad上部署Istio。Istio目前支持:

  • Service deployment on Kubernetes
  • Services registered with Consul
  • Services running on individual virtual machines

发表回复

后才能评论