为什么K8s需要服务网格Istio?

什么是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 可以生成详细的代理级别、面向服务的和控制平面的指标。

Istio 还通过 Envoy 代理创建分布式链路跟踪。它支持多种跟踪机制,如 Zipkin、Lightstep、Datadog 和 Jaeger。你可以控制跟踪生成的采样率。此外,Istio 还以可配置格式提供服务流量访问日志。

  • 24
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洒满阳光的午后

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值