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。

相关推荐
MY_TEUCK几秒前
【Java 后端】SpringBoot 登录认证与会话跟踪实战(JWT + Filter/Interceptor)
java·开发语言·spring boot
今天长肉了吗10 分钟前
银行风控项目踩坑实录:指标跑了6小时,风险评分全挂了
java
随读手机38 分钟前
多式联运信息交互平台完整方案(2026版)
java·ai·eclipse·云计算·区块链
许彰午1 小时前
03-二叉树——从递归遍历到非递归实现
java·算法
nj01281 小时前
Spring 循环依赖详解:三级缓存、早期引用、AOP 代理与懒加载
java·spring·缓存
野生技术架构师1 小时前
2026年最全Java面试题及答案汇总(建议收藏,面试前看这篇就够了)
java·开发语言·面试
一只叫煤球的猫2 小时前
ThreadForge 源码解读一:ThreadScope 如何把并发任务放进清晰边界?
java·面试·开源
洛_尘3 小时前
Python 5:使用库
java·前端·python
程序员小假3 小时前
HTTP3 性能更好,为什么内网微服务依然多用 HTTP2?HTTP2 内网优势是什么?
java·后端
Mr数据杨3 小时前
【Codex】用教案主体模块沉淀标准化教学设计内容
java·开发语言·django·codex·项目开发