什么是 Istio
Istio 是一种服务网格,是一种现代化的服务网络层,它提供了一种透明、独立于语言的方法,以灵活且轻松地实现应用网络功能自动化。 它是一种管理构成云原生应用的不同微服务的常用解决方案。Istio 服务网格还支持这些微服务彼此之间的通信和数据共享方式。
在组织加快迁移到云时,他们很有必要对应用进行现代化改造。但在从单体式旧版应用转为云原生应用时,DevOps 团队可能会面临挑战。
开发者必须学习如何使用松散耦合的微服务来组建应用,以确保在云环境中的可移植性。同时,运维团队必须在日益庞大的混合云和多云环境中管理新的云原生应用。Istio 可支持他们完成这些任务。
Istio 的定义
Istio 服务网格有哪些好处?
优势 |
描述 |
---|---|
实现一致的服务网络 | 网络运营商可以通过一致的方式管理其所有服务的网络,而不会增加开发者开销。 |
利用 Istio 的优势保护您的服务 | 您的安全运营商可以轻松实现服务间的安全性,包括身份验证、授权和加密。 |
提升应用性能 | 实现 Canary(金丝雀)版发布等最佳实践并深入了解应用,以便确定应该集中关注何处以提升性能。 |
Istio、Envoy 和 Kubernetes 如何协同工作?
了解 Istio 和 Istio 架构的关键在于了解 Envoy 和 Kubernetes。这并不是 Istio 与 Envoy 比较或者 Istio 与 Kubernetes 相比并不是 Istio 问题 - 它们通常会协同工作,以使基于微服务的容器化环境顺畅运行。
例如,像 Istio 这样的服务网格由控制平面和数据平面组成。Istio 使用扩展版本的 Envoy 作为其数据平面。随后,Envoy 管理 Istio 服务网格中的所有入站和出站流量。
另一方面,Kubernetes 是一种开源平台,通过自动化和编排容器化应用,消除了部署和扩缩容器化应用所涉及的许多手动流程。此外,虽然 Istio 与平台无关,但将 Istio 和 Kubernetes 结合在一起使用是开发者之间很受欢迎的一种做法。
Istio 独立于平台,适合在各种环境中运行:
- Cloud
- 本地
- Kubernetes
- Meso
Istio 有哪些用途?
Istio 允许组织大规模提供分布式应用。它能简化流量管理、授权和加密等服务到服务的网络操作,还能简化审核和可观察性。以下是能实现 Istio 优点的最常见使用场景:
用途 |
描述 |
---|---|
保护云原生应用 | 利用高强度身份验证、授权和加密机制,着重关注应用级别的安全性。 |
高效管理流量 | 借助丰富的路由规则、重试、故障切换和故障注入功能,对流量行为进行精细控制。 |
监控服务网格 | 借助 Istio 强大的跟踪、监控和日志记录功能,深入了解服务性能如何对上游产生影响。 |
使用 Kubernetes 和虚拟机轻松部署 | Istio 为传统和现代工作负载(包括容器和虚拟机)提供了可见性和网络控制。 |
利用高级功能简化负载均衡 | 为所有流量以及基于客户端的路由和 Canary 版发布等高级功能使用自动负载均衡。 |
强制执行政策 | 使用支持访问权限控制、速率限制和配额的可插入式政策层和配置 API,以强制执行政策。 |