kubenetes从入门到上天系列第二十六篇:Kubernetes的Istio服务网格实战

一:快速入门Istio

1:什么是Istio

Istio 是运行于分布式应用程序之上的非侵入式(无代码入侵)服务网格系统,它的主要目的是为了更好更轻松的解决服务治理问题(Istio 是一套非侵入式一站式服务治理解决方案)。

Istio 的实现原理是,为每个微服务部署一个 Sidecar(边车),代理微服务之间的所有网络通信。Istio 是一个与 Kubernetes 紧密结合的适用于云原生场景的 Service Mesh 形态的用于服务治理的开放平台。

这里的关键字 "治理" 不限于 "微服务治理" 的范畴,任何服务只要服务间有访问,如果需要对服务间的访问做管理,就可以使用 Istio。根据 Istio 官方的介绍服务治理涉及到 "连接"、"安全"、"控制"、"观察",中间的四个动词就是 Istio 的主要功能。

Service Mesh(服务网格) 是一个专门处理服务间通信的基础设施层 ,负责服务之间的网络调用、熔断、限流、监控、安全等治理能力,且对业务代码无侵入

  • 连接(Connect):智能控制服务之间的调用流量,能够实现灰度升级、AB 测试和蓝绿部署等功能。
  • 安全加固(Secure):自动为服务之间的调用提供认证、授权和加密。
  • 控制(Control):应用用户定义的 policy,保证资源在消费者中公平分配。
  • 观察(Observe):查看服务运行期间的各种数据,比如日志、监控和 tracing(跟踪),了解服务的运行情况。

2:Istio能做什么?

通过负载均衡、服务间的身份验证、监控等方法,Istio 可以轻松地创建一个已经部署了服务的网络,而服务的代码只需很少更改甚至无需更改。通过在整个环境中部署一个特殊的 sidecar 代理为服务添加 Istio 的支持,而代理会拦截微服务之间的所有网络通信,然后使用其控制平面的功能来配置和管理 Istio。

Istio 的主要功能如下:

  1. 服务发现(discovery)。
  2. 负载均衡(load balancing)。
  3. 故障恢复(failure recovery)。
  4. 服务度量(metrics)。
  5. 服务监控(monitoring)。
  6. A/B 测试(A/B testing)。
  7. 灰度发布(canary rollouts)。
  8. 限流限速(rate limiting)。
  9. 访问控制(access control)。
  10. 身份认证(end-to-end authentication)。

从场景来看,Kubernetes 已经提供了非常强大的应用负载的部署、升级、扩容等运行管理能力。Kubernetes 中的 Service 机制也已经可以做服务注册、服务发现和负载均衡,支持通过服务名访问到服务实例。

从微服务的工具集观点来看,Kubernetes 本身是支持微服务的架构,在 Pod 中部署微服务很合适,也已经解决了微服务的互访互通问题,但对服务间访问的管理如服务的熔断、限流、动态路由、调用链追踪等都不在 Kubernetes 的能力范围内。那么,如何提供一套从底层的负载部署运行到上层的服务访问治理端到端的解决方案?目前,最完美的答案就是在 Kubernetes 上叠加 Istio。

相关推荐
xierui12312329 分钟前
AI Agent 隐私架构:本地化重点为什么是登录态与执行权限
java·人工智能·网络安全·架构
cfm_291439 分钟前
Spring AI Tool 调用架构全解
java·人工智能·spring
sun༒1 小时前
Spring @Scheduled 定时任务详解:Cron表达式、执行顺序、优先级与并行调度
java·后端·spring
一次旅行1 小时前
DeepSeek‑V4‑Flash‑Vision‑Exp 小白入门实战|3种传图方式、完整可跑代码、避坑排障
java·前端·人工智能
野生技术架构师1 小时前
Spring Boot 实现数据脱敏:自定义注解 + Jackson 序列化器
java·spring boot·后端
AI人工智能+电脑小能手1 小时前
大白话说Java设计模式-28-模板方法模式(业务实战篇)
java·设计模式·模板方法模式·spring源码·订单系统·代码复用
奥莱维1 小时前
KNX酒店方案_KNX专用线与高端酒店技术逻辑
java·服务器·前端·数据库
工业一体机老司机2 小时前
Linux工业一体机自启动服务配置:systemd服务单元编写与开机优化实战
java·linux·服务器
Thneonl2 小时前
让恢复动作敢按下去:dry-run、审批门、自动回滚与 mutable twin
rust·kubernetes
weixin_538601972 小时前
智能体测开Day56
java