什么是Kubernetes服务网格
Kubernetes服务网格是一种工具,用于在平台级别而非应用级别为应用程序注入可观测性、可靠性和安全性功能。Kubernetes和微服务的兴起推动了人们对这项技术的兴趣,许多组织都采用了Kubernetes服务网格解决方案。
微服务架构高度依赖于网络,而服务网格可以管理应用程序服务之间的流量。虽然也有其他管理网络流量的方法,但这些方法需要手动执行易错的任务,会给DevOps团队带来了更多的操作负担,而服务网格则避免了这种劣势。
Kubernetes服务网格通常会被实现为一组网络代理,这些代理作为边车(sidecar)容器与应用程序容器部署在同一pod中。边车代理作为服务网格功能的入口点,管理容器化微服务之间的通信。Kubernetes服务网格包括控制平面和数据平面,其中数据平面就是由代理组成的。
服务网格架构和Kubernetes随着云原生应用的兴起而出现,一个应用程序可能由数百个容器化服务组成,而每个服务可能有数千个实例。这些实例会迅速变化,需要动态调度,这正是Kubernetes所擅长的。
什么是Istio
Istio是一种服务网格技术,管理基于容器或虚拟机工作负载之间的服务交互,它允许开发人员无论使用何种供应商或平台,都能安全地连接、运行、控制和监控分布式微服务架构。
Istio是开源且独立的,因此它可以在任何平台上使用,但是当与Kubernetes结合时,会发生最奇妙的化学反应。将两者结合使用,可以在网络和应用层面确保服务间和Pod间的通信安全。
与Istio集成扩展了容器编排软件的功能,Kubernetes可以处理微服务等多容器工作负载,但不具备故障处理和流量管理等功能,而Istio弥补了这一短板,可以创建了更高效、更可靠的系统。
在Kubernetes中使用Istio的好处
Istio使组织能够大规模地交付去中心化应用,它有助于简化网络操作,如服务间流量管理、加密、授权、故障排除和审计。
除了纯Kubernetes提供的功能外,Istio还提供了以下能力:
- 云原生应用安全,可以专注于应用级别的安全,利用强大的基于身份的授权、身份验证和加密。
- 高效的流量管理,通过使用丰富的路由规则、故障转移、重试和错误注入,实现对流量和网络行为的精细控制。在生产后测试中,Chaos Monkey集成能够让SRE注入故障和延迟,以提高系统的韧性。
- 服务网格监控,Istio提供了服务级别的可观测性,以便运维人员能够跟踪、监控和排查问题。没有低细粒度的细节,瓶颈问题可能需要很长时间才能定位解决。服务网格使得禁用故障服务或副本以及维护API响应变得更加容易。
- 轻松部署,在Kubernetes中部署Istio变得非常容易。
- 简化的负载均衡,高级功能可以自动执行负载均衡,提供基于客户端的路由,并支持金丝雀部署。
- 策略执行,Istio通过其配置API和策略层来支持访问控制、配额和速率限制等策略的执行。
Istio 的工作原理
以下是 Istio 核心功能的概述。
- 流量管理
Istio 的流量管理 API 可以在细粒度级别管理服务网格的流量。你可以使用这个 API 添加流量配置,并使用 Kubernetes 自定义资源(CRDs)定义 API 资源。用于控制流量路由的主要 API 资源包括目标规则和虚拟服务。
目标规则有助于控制到特定目标的流量,例如,根据版本对服务实例进行分类。虚拟服务允许你配置 Istio 服务网格中服务的请求路由,它们由一个或多个按顺序评估的路由规则组成。在评估虚拟服务的路由规则后,即可以应用目标规则。
- 安全性
Istio 的安全性要求为每个服务分配一个强大的身份。Envoy 代理与 Istio 代理一起运行,使用 istiod 自动轮换证书和密钥。
Istio 提供了两种身份验证选项:请求身份验证和对等身份验证。请求身份验证允许最终用户进行身份验证,Istio 通过 JSON Web Tokens (JWTs) 和自定义或基于 OIDC 的身份验证程序进行验证。对等身份验证允许服务之间进行身份验证,Istio 提供了一个完整的双向 TLS 解决方案。
Istio 允许你通过应用授权策略来控制对服务的访问。授权策略通过 Envoy 代理对入站流量执行访问控制。它们允许你在不同级别上强制执行访问控制,例如在整个网格级别、命名空间级别或服务级别。
- 可观测性
Istio 为所有服务网格通信提供细粒度的遥测数据,包括指标、访问日志和链路跟踪。Istio 可以生成详细的代理级别、面向服务的和控制平面的指标。文章来源:https://www.toymoban.com/news/detail-850332.html
Istio 还通过 Envoy 代理创建分布式链路跟踪。它支持多种跟踪机制,如 Zipkin、Lightstep、Datadog 和 Jaeger。你可以控制跟踪生成的采样率。此外,Istio 还以可配置格式提供服务流量访问日志。文章来源地址https://www.toymoban.com/news/detail-850332.html
到了这里,关于为什么K8s需要服务网格Istio?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!